mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-02-15 04:15:53 +08:00
Compare commits
34 Commits
core/devel
...
core/devel
| Author | SHA1 | Date | |
|---|---|---|---|
| f2d3390bd4 | |||
| fb5af12d7a | |||
| 63655a97e9 | |||
| fdf032d9f8 | |||
| 3b85b58558 | |||
| 00f1f40a1e | |||
| 46c05a4c27 | |||
| f3a510bd58 | |||
| 45231b822c | |||
| e0591675d2 | |||
| 67a849f110 | |||
| 15800296f7 | |||
| 52fe741f9a | |||
| b3ee693890 | |||
| 8c2e1738ea | |||
| bf33aed853 | |||
| 5869c7a02e | |||
| bbd429a994 | |||
| f4d636539e | |||
| 92e02257d7 | |||
| d2046d7ccb | |||
| 7bc35a157a | |||
| 903245e8a7 | |||
| 25ee9c3c1c | |||
| 9ead40d279 | |||
| e097379c21 | |||
| f86579d601 | |||
| de7511f243 | |||
| 9a68a75f70 | |||
| e04388aa32 | |||
| cee61e7a92 | |||
| 48185ed4e9 | |||
| 7bea086784 | |||
| 774f9c42cb |
@ -232,7 +232,8 @@ namespace DocFileFormat
|
||||
|
||||
case sprmOldCIss:
|
||||
case sprmCIss:
|
||||
appendValueElement( parent, L"vertAlign", FormatUtils::MapValueToWideString( iter->Arguments[0], &SuperscriptIndex[0][0], 3, 12 ), true );
|
||||
if (iter->argumentsSize > 0 && iter->Arguments[0] < 3) //Metaevan.doc
|
||||
appendValueElement( parent, L"vertAlign", FormatUtils::MapValueToWideString( iter->Arguments[0], &SuperscriptIndex[0][0], 3, 12 ), true );
|
||||
break;
|
||||
|
||||
case sprmCRgLid0_80:
|
||||
|
||||
@ -250,10 +250,6 @@ public:
|
||||
{
|
||||
pFile->WriteFile((BYTE*)m_pMetaHeader, m_lMetaHeaderSize);
|
||||
}
|
||||
if (NULL != m_pMetaFile)
|
||||
{
|
||||
pFile->WriteFile((BYTE*)m_pMetaFile, m_lMetaFileSize);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -71,26 +71,26 @@ namespace DocFileFormat
|
||||
{
|
||||
struct __BITMAPINFOHEADER
|
||||
{
|
||||
DWORD biSize;
|
||||
LONG biWidth;
|
||||
LONG biHeight;
|
||||
WORD biPlanes;
|
||||
WORD biBitCount;
|
||||
DWORD biCompression;
|
||||
DWORD biSizeImage;
|
||||
LONG biXPelsPerMeter;
|
||||
LONG biYPelsPerMeter;
|
||||
DWORD biClrUsed;
|
||||
DWORD biClrImportant;
|
||||
_UINT32 biSize;
|
||||
_INT32 biWidth;
|
||||
_INT32 biHeight;
|
||||
_UINT16 biPlanes;
|
||||
_UINT16 biBitCount;
|
||||
_UINT32 biCompression;
|
||||
_UINT32 biSizeImage;
|
||||
_INT32 biXPelsPerMeter;
|
||||
_INT32 biYPelsPerMeter;
|
||||
_UINT32 biClrUsed;
|
||||
_UINT32 biClrImportant;
|
||||
};
|
||||
|
||||
struct __BITMAPCOREHEADER
|
||||
{
|
||||
DWORD bcSize; /* used to get to color table */
|
||||
WORD bcWidth;
|
||||
WORD bcHeight;
|
||||
WORD bcPlanes;
|
||||
WORD bcBitCount;
|
||||
_UINT32 bcSize; /* used to get to color table */
|
||||
_UINT16 bcWidth;
|
||||
_UINT16 bcHeight;
|
||||
_UINT16 bcPlanes;
|
||||
_UINT16 bcBitCount;
|
||||
};
|
||||
Global::BlipType GetFormatPict(unsigned char* data, int size)
|
||||
{
|
||||
|
||||
@ -37,29 +37,29 @@
|
||||
|
||||
namespace ImageHelper
|
||||
{
|
||||
struct __BITMAPINFOHEADER
|
||||
{
|
||||
DWORD biSize;
|
||||
LONG biWidth;
|
||||
LONG biHeight;
|
||||
WORD biPlanes;
|
||||
WORD biBitCount;
|
||||
DWORD biCompression;
|
||||
DWORD biSizeImage;
|
||||
LONG biXPelsPerMeter;
|
||||
LONG biYPelsPerMeter;
|
||||
DWORD biClrUsed;
|
||||
DWORD biClrImportant;
|
||||
};
|
||||
struct __BITMAPINFOHEADER
|
||||
{
|
||||
_UINT32 biSize;
|
||||
_INT32 biWidth;
|
||||
_INT32 biHeight;
|
||||
_UINT16 biPlanes;
|
||||
_UINT16 biBitCount;
|
||||
_UINT32 biCompression;
|
||||
_UINT32 biSizeImage;
|
||||
_INT32 biXPelsPerMeter;
|
||||
_INT32 biYPelsPerMeter;
|
||||
_UINT32 biClrUsed;
|
||||
_UINT32 biClrImportant;
|
||||
};
|
||||
|
||||
struct __BITMAPCOREHEADER
|
||||
{
|
||||
DWORD bcSize; /* used to get to color table */
|
||||
WORD bcWidth;
|
||||
WORD bcHeight;
|
||||
WORD bcPlanes;
|
||||
WORD bcBitCount;
|
||||
};
|
||||
struct __BITMAPCOREHEADER
|
||||
{
|
||||
_UINT32 bcSize; /* used to get to color table */
|
||||
_UINT16 bcWidth;
|
||||
_UINT16 bcHeight;
|
||||
_UINT16 bcPlanes;
|
||||
_UINT16 bcBitCount;
|
||||
};
|
||||
|
||||
inline Global::_BlipType SaveImageToFileFromDIB(unsigned char* data, int size, const std::wstring& file_name)//without ext
|
||||
{
|
||||
@ -152,10 +152,10 @@ namespace ImageHelper
|
||||
NSFile::CFileBinary file;
|
||||
if (file.CreateFileW(file_name + L".bmp"))
|
||||
{
|
||||
WORD vtType = 0x4D42; file.WriteFile((BYTE*)&vtType, 2);
|
||||
DWORD dwLen = biSizeImage; file.WriteFile((BYTE*)&dwLen, 4);
|
||||
DWORD dwRes = 0; file.WriteFile((BYTE*)&dwRes, 4);
|
||||
DWORD dwOffset = 2; file.WriteFile((BYTE*)&dwOffset, 4);
|
||||
_UINT16 vtType = 0x4D42; file.WriteFile((BYTE*)&vtType, 2);
|
||||
_UINT32 dwLen = biSizeImage; file.WriteFile((BYTE*)&dwLen, 4);
|
||||
_UINT32 dwRes = 0; file.WriteFile((BYTE*)&dwRes, 4);
|
||||
_UINT32 dwOffset = 2; file.WriteFile((BYTE*)&dwOffset, 4);
|
||||
|
||||
file.WriteFile((BYTE*)data, size);
|
||||
file.CloseFile();
|
||||
|
||||
@ -339,9 +339,9 @@ public:
|
||||
if(ThemeColor.bColor)
|
||||
sShd += L" w:themeFill=\"" + ThemeColor.ToStringColor() + L"\"";
|
||||
if(ThemeColor.bTint)
|
||||
sShd += L" w:themeFillTint=\"" + ThemeColor.ToStringColor() + L"\"";
|
||||
sShd += L" w:themeFillTint=\"" + ThemeColor.ToStringTint() + L"\"";
|
||||
if(ThemeColor.bShade)
|
||||
sShd += L" w:themeFillShade=\"" + ThemeColor.ToStringColor() + L"\"";
|
||||
sShd += L" w:themeFillShade=\"" + ThemeColor.ToStringShade() + L"\"";
|
||||
}
|
||||
sShd += L"/>";
|
||||
}
|
||||
|
||||
@ -121,7 +121,7 @@ namespace Writers
|
||||
CFontInfo* pFontInfo = m_pFontManager->GetFontInfoByParams(oFontSelectFormat);
|
||||
if(NULL != pFontInfo)
|
||||
{
|
||||
for(int i = 0; i < 10; ++i)
|
||||
for (size_t i = 0; i < 10; ++i)
|
||||
{
|
||||
BYTE cElem = pFontInfo->m_aPanose[i];
|
||||
if(0 != cElem)
|
||||
|
||||
@ -149,8 +149,8 @@ namespace BinDocxRW
|
||||
switch(border.m_oVal.get().GetValue())
|
||||
{
|
||||
case SimpleTypes::bordervalueNone:
|
||||
case SimpleTypes::bordervalueNil:m_oStream.WriteBYTE(border_None);break;
|
||||
default:m_oStream.WriteBYTE(border_Single);break;
|
||||
case SimpleTypes::bordervalueNil: m_oStream.WriteBYTE(border_None); break;
|
||||
default: m_oStream.WriteBYTE(border_Single); break;
|
||||
}
|
||||
|
||||
}
|
||||
@ -306,8 +306,8 @@ namespace BinDocxRW
|
||||
m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
|
||||
switch(Shd.m_oVal.get().GetValue())
|
||||
{
|
||||
case SimpleTypes::shdNil: m_oStream.WriteBYTE(shd_Nil);break;
|
||||
default: m_oStream.WriteBYTE(shd_Clear);break;
|
||||
case SimpleTypes::shdNil: m_oStream.WriteBYTE(shd_Nil);break;
|
||||
default: m_oStream.WriteBYTE(shd_Clear);break;
|
||||
}
|
||||
}
|
||||
//Value
|
||||
@ -538,7 +538,9 @@ namespace BinDocxRW
|
||||
case SimpleTypes::themeMinorBidi:
|
||||
case SimpleTypes::themeMinorEastAsia:
|
||||
case SimpleTypes::themeMinorHAnsi:sFontAscii = m_poTheme->GetMinorFont();break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if(oFont.m_sAscii.IsInit())
|
||||
sFontAscii = oFont.m_sAscii.get();
|
||||
@ -556,7 +558,9 @@ namespace BinDocxRW
|
||||
case SimpleTypes::themeMinorBidi:
|
||||
case SimpleTypes::themeMinorEastAsia:
|
||||
case SimpleTypes::themeMinorHAnsi:sFontHAnsi = m_poTheme->GetMinorFont();break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if(oFont.m_sHAnsi.IsInit())
|
||||
sFontHAnsi = oFont.m_sHAnsi.get();
|
||||
@ -573,7 +577,8 @@ namespace BinDocxRW
|
||||
case SimpleTypes::themeMinorBidi:
|
||||
case SimpleTypes::themeMinorEastAsia:
|
||||
case SimpleTypes::themeMinorHAnsi:sFontCS = m_poTheme->GetMinorFont();break;
|
||||
}
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
else if(oFont.m_sCs.IsInit())
|
||||
sFontCS = oFont.m_sCs.get();
|
||||
@ -590,7 +595,8 @@ namespace BinDocxRW
|
||||
case SimpleTypes::themeMinorBidi:
|
||||
case SimpleTypes::themeMinorEastAsia:
|
||||
case SimpleTypes::themeMinorHAnsi:sFontAE = m_poTheme->GetMinorFont();break;
|
||||
}
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
else if(oFont.m_sEastAsia.IsInit())
|
||||
sFontAE = oFont.m_sEastAsia.get();
|
||||
@ -1394,7 +1400,8 @@ namespace BinDocxRW
|
||||
{
|
||||
case SimpleTypes::pageorientPortrait: Orientation = orientation_Portrait;break;
|
||||
case SimpleTypes::pageorientLandscape: Orientation = orientation_Landscape;break;
|
||||
}
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
}
|
||||
//W
|
||||
@ -1480,14 +1487,14 @@ namespace BinDocxRW
|
||||
OOX::CHdrFtr* pHdrFtr = (OOX::CHdrFtr*)oFile.operator->();
|
||||
if(bHdr)
|
||||
{
|
||||
nIndex = m_oBinaryHeaderFooterTableWriter->m_aHeaders.size();
|
||||
nIndex = (int)m_oBinaryHeaderFooterTableWriter->m_aHeaders.size();
|
||||
m_oBinaryHeaderFooterTableWriter->m_aHeaders.push_back(pHdrFtr);
|
||||
m_oBinaryHeaderFooterTableWriter->m_aHeaderTypes.push_back(oRef.m_oType->GetValue());
|
||||
m_oBinaryHeaderFooterTableWriter->m_aHeaderSectPrs.push_back(pSectPr);
|
||||
}
|
||||
else
|
||||
{
|
||||
nIndex = m_oBinaryHeaderFooterTableWriter->m_aFooters.size();
|
||||
nIndex = (int)m_oBinaryHeaderFooterTableWriter->m_aFooters.size();
|
||||
m_oBinaryHeaderFooterTableWriter->m_aFooters.push_back(pHdrFtr);
|
||||
m_oBinaryHeaderFooterTableWriter->m_aFooterTypes.push_back(oRef.m_oType->GetValue());
|
||||
m_oBinaryHeaderFooterTableWriter->m_aFooterSectPrs.push_back(pSectPr);
|
||||
@ -3049,6 +3056,8 @@ namespace BinDocxRW
|
||||
OOX::Logic::CBdo* pBdo = static_cast<OOX::Logic::CBdo*>(item);
|
||||
WriteDocumentContent(pBdo->m_arrItems);
|
||||
}break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
//SectPr & Background
|
||||
@ -3236,6 +3245,8 @@ namespace BinDocxRW
|
||||
m_oBcw.WriteItemEnd(nCurPos);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3268,7 +3279,9 @@ namespace BinDocxRW
|
||||
case OOX::et_w_commentRangeEnd: nCurPos = m_oBcw.WriteItemStart(c_oSerParType::CommentEnd); break;
|
||||
|
||||
case OOX::et_w_commentReference: nCurPos = m_oBcw.WriteItemStart(c_oSerRunType::CommentReference);break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
int nCurPos2 = m_oBcw.WriteItemStart(c_oSer_CommentsType::Id);
|
||||
m_oBcw.m_oStream.WriteLONG(oId->GetValue());
|
||||
@ -3738,6 +3751,8 @@ namespace BinDocxRW
|
||||
m_oBcw.WriteItemEnd(nCurPos);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -4062,6 +4077,8 @@ namespace BinDocxRW
|
||||
m_oBcw.WriteItemEnd(nCurPos);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -4179,7 +4196,9 @@ namespace BinDocxRW
|
||||
m_oBcw.WriteItemEnd(nCurPos);
|
||||
break;
|
||||
}
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
void WriteMathFName(const OOX::Logic::CFName &pFName)
|
||||
@ -4414,7 +4433,9 @@ namespace BinDocxRW
|
||||
m_oBcw.WriteItemEnd(nCurPos);
|
||||
break;
|
||||
}
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
void WriteMathMaxDist(const OOX::Logic::CMaxDist &pMaxDist)
|
||||
@ -5074,7 +5095,7 @@ namespace BinDocxRW
|
||||
}
|
||||
}
|
||||
//Если первый элемент символ надо выставить в его настройки шрифт
|
||||
if(nIndexStart < pRun->m_arrItems.size() && OOX::et_w_sym == pRun->m_arrItems[nIndexStart]->getType())
|
||||
if(nIndexStart < (int)pRun->m_arrItems.size() && OOX::et_w_sym == pRun->m_arrItems[nIndexStart]->getType())
|
||||
{
|
||||
OOX::Logic::CSym* oSym = static_cast<OOX::Logic::CSym*>(pRun->m_arrItems[nIndexStart]);
|
||||
if(oSym->m_oFont.IsInit())
|
||||
@ -5123,7 +5144,9 @@ namespace BinDocxRW
|
||||
case SimpleTypes::brtypeColumn: nBreakType = c_oSerRunType::columnbreak; break;
|
||||
case SimpleTypes::brtypePage: nBreakType = c_oSerRunType::pagebreak; break;
|
||||
case SimpleTypes::brtypeTextWrapping: nBreakType = c_oSerRunType::linebreak; break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if(-1 != nBreakType)
|
||||
{
|
||||
m_oBcw.m_oStream.WriteBYTE(nBreakType);
|
||||
@ -5351,6 +5374,8 @@ namespace BinDocxRW
|
||||
m_oBcw.WriteItemEnd(nCurPos);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -6913,7 +6938,9 @@ namespace BinDocxRW
|
||||
m_oBcw.WriteItemEnd(nCurPos);
|
||||
break;
|
||||
}
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
void WriteColorSchemeMapping(const OOX::Settings::CColorSchemeMapping& oColorSchemeMapping)
|
||||
|
||||
@ -58,7 +58,7 @@ namespace DocWrapper {
|
||||
{
|
||||
//подбор перенесен в js
|
||||
return;
|
||||
for (int i = 0; i < fontTable->m_arrFonts.size(); ++i)
|
||||
for (size_t i = 0; i < fontTable->m_arrFonts.size(); ++i)
|
||||
addToFontMap(*fontTable->m_arrFonts[i]);
|
||||
}
|
||||
|
||||
|
||||
@ -378,6 +378,7 @@
|
||||
MAC,
|
||||
unix,
|
||||
_IOS,
|
||||
DONT_WRITE_EMBEDDED_FONTS,
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
@ -414,6 +415,7 @@
|
||||
MAC,
|
||||
unix,
|
||||
_IOS,
|
||||
DONT_WRITE_EMBEDDED_FONTS,
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
|
||||
@ -55,7 +55,7 @@ int _tmain(int argc, _TCHAR* argv[])
|
||||
HRESULT hr = S_OK;
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
std::wstring srcFileName = argv[1];
|
||||
std::wstring dstPath = argc > 2 ? argv[2] : srcFileName + L"-my.pptx"; //xlsx pptx
|
||||
std::wstring dstPath = argc > 2 ? argv[2] : srcFileName + L"-my.docx"; //xlsx pptx
|
||||
|
||||
std::wstring outputDir = NSDirectory::GetFolderPath(dstPath);
|
||||
|
||||
|
||||
@ -34,18 +34,15 @@
|
||||
#include <boost/optional/optional_io.hpp>
|
||||
#include <boost/optional.hpp>
|
||||
|
||||
namespace cpdoccore
|
||||
/// внешнее объявление для Optional, используем boost::optional
|
||||
|
||||
template <class T>
|
||||
struct optional
|
||||
{
|
||||
/// внешнее объявление для Optional, используем boost::optional
|
||||
|
||||
template <class T>
|
||||
struct optional
|
||||
{
|
||||
typedef T Base;
|
||||
typedef boost::optional<T> Type;
|
||||
};
|
||||
typedef T Base;
|
||||
typedef boost::optional<T> Type;
|
||||
};
|
||||
|
||||
|
||||
#define _CP_OPT(V) optional<V>::Type
|
||||
#define _CP_OPT(V) optional<V>::Type
|
||||
|
||||
}
|
||||
|
||||
@ -569,7 +569,8 @@ mc:Ignorable=\"w14 wp14\">";
|
||||
|
||||
strm << L"<w:abstractNum w:abstractNumId=\"" << abstractNumId << "\">";
|
||||
numIds.push_back(abstractNumId);
|
||||
for (int i = 0; i < (std::min)( content.size(), (size_t)9); i++)
|
||||
|
||||
for (size_t i = 0; i < (std::min)( content.size(), (size_t)9); i++)
|
||||
{
|
||||
start_text_list_style(inst->get_text_list_style()->get_style_name());
|
||||
content[i]->docx_convert(*this);
|
||||
@ -1296,7 +1297,7 @@ void docx_conversion_context::start_text_changes (std::wstring id)
|
||||
|
||||
if (state.type == 2)
|
||||
{
|
||||
for (int i = 0 ; i < state.content.size(); i++)
|
||||
for (size_t i = 0 ; i < state.content.size(); i++)
|
||||
{
|
||||
output_stream() << L"<w:del" << format_change << L" w:id=\"" << boost::lexical_cast<std::wstring>(current_id_changes++) << L"\">";
|
||||
|
||||
|
||||
@ -531,8 +531,8 @@ mso-position-vertical-relative:text;";
|
||||
strStyle += L"height:" + boost::lexical_cast<std::wstring>(val.cy / 12700.) + L"pt;";
|
||||
strStyle += L"z-index:" + boost::lexical_cast<std::wstring>(0xF000800 - val.id);
|
||||
|
||||
CP_XML_ATTR(L"id", L"Rect" + boost::lexical_cast<std::wstring>(val.id));
|
||||
CP_XML_ATTR(L"o:spid", L"_x0000_s" + boost::lexical_cast<std::wstring>(1024 + val.id));
|
||||
CP_XML_ATTR(L"id", L"Rect" + std::to_wstring(val.id));
|
||||
CP_XML_ATTR(L"o:spid", L"_x0000_s" + std::to_wstring(1024 + val.id));
|
||||
CP_XML_ATTR(L"style", strStyle);
|
||||
CP_XML_ATTR(L"fillcolor", L"#4f81bd [3204]");
|
||||
CP_XML_ATTR(L"strokecolor", L"#243f60 [1604]");
|
||||
|
||||
@ -139,7 +139,7 @@ void oox_chart_series::setValues(int ind, std::vector<std::wstring> & values)
|
||||
if (ind == 0) values_[ind].strRef_.present = true;
|
||||
else values_[ind].numRef_.present = true;
|
||||
|
||||
for (int i = 0; i < values.size(); i++)
|
||||
for (size_t i = 0; i < values.size(); i++)
|
||||
{
|
||||
boost::algorithm::trim(values[i]);
|
||||
if (ind == 0)
|
||||
@ -240,7 +240,7 @@ void oox_chart_series::oox_serialize_common(std::wostream & _Wostream)
|
||||
{
|
||||
CP_XML_ATTR(L"val", values_[i].numRef_.num_cache_count);
|
||||
}
|
||||
for (int j = 0; j < values_[i].numRef_.num_cache.size(); j++)
|
||||
for (size_t j = 0; j < values_[i].numRef_.num_cache.size(); j++)
|
||||
{
|
||||
std::wstring & v = values_[i].numRef_.num_cache[j];
|
||||
|
||||
@ -275,7 +275,7 @@ void oox_chart_series::oox_serialize_common(std::wostream & _Wostream)
|
||||
CP_XML_ATTR(L"val", values_[i].numRef_.num_cache_count);
|
||||
}
|
||||
|
||||
for (int j = 0; j < values_[i].numRef_.num_cache.size(); j++)
|
||||
for (size_t j = 0; j < values_[i].numRef_.num_cache.size(); j++)
|
||||
{
|
||||
std::wstring & v = values_[i].numRef_.num_cache[j];
|
||||
|
||||
@ -312,7 +312,7 @@ void oox_chart_series::oox_serialize_common(std::wostream & _Wostream)
|
||||
{
|
||||
CP_XML_ATTR(L"val", values_[i].strRef_.str_cache_count);
|
||||
}
|
||||
for (int j = 0; j < values_[i].strRef_.str_cache.size(); j++)
|
||||
for (size_t j = 0; j < values_[i].strRef_.str_cache.size(); j++)
|
||||
{
|
||||
std::wstring & v = values_[i].strRef_.str_cache[j];
|
||||
|
||||
@ -336,7 +336,7 @@ void oox_chart_series::oox_serialize_common(std::wostream & _Wostream)
|
||||
{
|
||||
CP_XML_ATTR(L"val", values_[i].strRef_.str_cache_count);
|
||||
}
|
||||
for (int j = 0; j < values_[i].strRef_.str_cache.size(); j++)
|
||||
for (size_t j = 0; j < values_[i].strRef_.str_cache.size(); j++)
|
||||
{
|
||||
std::wstring & v = values_[i].strRef_.str_cache[j];
|
||||
CP_XML_NODE(L"c:pt")
|
||||
@ -405,7 +405,7 @@ void oox_chart_series::oox_serialize_common(std::wostream & _Wostream)
|
||||
}
|
||||
|
||||
bool bEmpty_dPt = true;
|
||||
for (int i = 0 ; i < content_.points_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.points_.size(); i++)
|
||||
{
|
||||
if (content_.points_[i].bEnabled)
|
||||
{
|
||||
@ -415,9 +415,9 @@ void oox_chart_series::oox_serialize_common(std::wostream & _Wostream)
|
||||
}
|
||||
|
||||
int indPoint = 0;
|
||||
for (int i = 0 ; !bEmpty_dPt && i < content_.points_.size(); i++)
|
||||
for (size_t i = 0 ; !bEmpty_dPt && i < content_.points_.size(); i++)
|
||||
{
|
||||
for (int j = 0 ; j < content_.points_[i].repeated_; j++)
|
||||
for (size_t j = 0 ; j < content_.points_[i].repeated_; j++)
|
||||
{
|
||||
CP_XML_NODE(L"c:dPt")
|
||||
{
|
||||
|
||||
@ -35,9 +35,49 @@
|
||||
#include "oox_drawing.h"
|
||||
#include <cpdoccore/xml/simple_xml_writer.h>
|
||||
|
||||
#include "../odf/svg_parser.h"
|
||||
#include "../odf/datatypes/custom_shape_types_convert.h"
|
||||
|
||||
using namespace cpdoccore;
|
||||
|
||||
namespace svg_path
|
||||
{
|
||||
void oox_serialize(std::wostream & strm, std::vector<_polyline> & path)
|
||||
{
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
for (size_t i = 0; i < path.size(); i++)
|
||||
{
|
||||
oox_serialize(strm, path[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
void oox_serialize(std::wostream & strm, _polyline & val)
|
||||
{
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(val.command)
|
||||
{
|
||||
for (size_t i = 0; i < val.points.size(); i++)
|
||||
{
|
||||
oox_serialize(CP_XML_STREAM(), val.points[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
void oox_serialize(std::wostream & strm, _point & val)
|
||||
{
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"a:pt")
|
||||
{
|
||||
if (val.x)CP_XML_ATTR(L"x", (int)(val.x.get()));
|
||||
if (val.y)CP_XML_ATTR(L"y", (int)(val.y.get()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace cpdoccore {
|
||||
|
||||
static const std::wstring _ooxShapeType[]=
|
||||
@ -53,41 +93,6 @@ static const std::wstring _ooxShapeType[]=
|
||||
L"polygon",
|
||||
};
|
||||
|
||||
void svg_path::oox_serialize(std::wostream & strm, std::vector<svg_path::_polyline> & path)
|
||||
{
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
BOOST_FOREACH(svg_path::_polyline & p, path)
|
||||
{
|
||||
oox_serialize(strm, p);
|
||||
}
|
||||
}
|
||||
}
|
||||
void svg_path::oox_serialize(std::wostream & strm, svg_path::_polyline const & val)
|
||||
{
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(val.command)
|
||||
{
|
||||
BOOST_FOREACH(svg_path::_point const & p, val.points)
|
||||
{
|
||||
oox_serialize(CP_XML_STREAM(), p);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void svg_path::oox_serialize(std::wostream & strm, svg_path::_point const & val)
|
||||
{
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"a:pt")
|
||||
{
|
||||
if (val.x)CP_XML_ATTR(L"x", (int)(val.x.get()));
|
||||
if (val.y)CP_XML_ATTR(L"y", (int)(val.y.get()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
namespace oox {
|
||||
|
||||
|
||||
@ -40,6 +40,8 @@
|
||||
#include "mediaitems.h"
|
||||
#include "oox_drawing_fills.h"
|
||||
|
||||
#include "../odf/svg_parser.h"
|
||||
|
||||
#include "../../../Common/DocxFormat/Source/Base/Types_32.h"
|
||||
|
||||
namespace cpdoccore {
|
||||
@ -83,13 +85,19 @@ namespace oox {
|
||||
void serialize_shape (std::wostream & strm);
|
||||
void serialize_xfrm (std::wostream & strm, const std::wstring & namespace_ = L"a", bool always_position = false);
|
||||
void serialize_bodyPr (std::wostream & strm, const std::wstring & namespace_ = L"a");
|
||||
};
|
||||
|
||||
};
|
||||
typedef _CP_PTR(_oox_drawing) oox_drawing_ptr;
|
||||
|
||||
void oox_serialize_ln (std::wostream & strm, const std::vector<odf_reader::_property> & val, bool always_draw = false);
|
||||
void oox_serialize_aLst (std::wostream & strm, const std::vector<odf_reader::_property> & val);
|
||||
void oox_serialize_hlink (std::wostream & strm, const std::vector<_hlink_desc> & val);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
namespace svg_path
|
||||
{
|
||||
void oox_serialize (std::wostream & strm, _point & val);
|
||||
void oox_serialize (std::wostream & strm, _polyline & val);
|
||||
void oox_serialize (std::wostream & strm, std::vector<_polyline> & path);
|
||||
}
|
||||
@ -66,7 +66,7 @@ void oox_serialize_srgb(std::wostream & strm,std::wstring color,_CP_OPT(double)
|
||||
{
|
||||
CP_XML_NODE(L"a:srgbClr")
|
||||
{
|
||||
CP_XML_ATTR(L"val",color);
|
||||
CP_XML_ATTR(L"val", color);
|
||||
if (opacity)
|
||||
{
|
||||
CP_XML_NODE(L"a:alpha")
|
||||
@ -101,11 +101,56 @@ void oox_serialize_solid_fill(std::wostream & strm, const _oox_fill & val)
|
||||
{
|
||||
CP_XML_NODE(L"a:solidFill")
|
||||
{
|
||||
oox_serialize_srgb(CP_XML_STREAM(),val.solid->color,val.opacity);
|
||||
oox_serialize_srgb(CP_XML_STREAM(), val.solid->color, val.opacity);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
void vml_serialize_solid_fill(std::wostream & strm, const _oox_fill & val)
|
||||
{
|
||||
if (!val.solid)return;
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"v:fill")
|
||||
{
|
||||
oox_serialize_srgb(CP_XML_STREAM(), val.solid->color, val.opacity);
|
||||
CP_XML_ATTR(L"v:fill", val.solid->color);
|
||||
if (val.opacity)
|
||||
{
|
||||
CP_XML_ATTR(L"v:opacity", *val.opacity);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
void vml_serialize_bitmap_fill(std::wostream & strm, const _oox_fill & val)
|
||||
{
|
||||
if (!val.bitmap) return;
|
||||
if (!val.bitmap->isInternal) return;
|
||||
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"v:fill")
|
||||
{
|
||||
CP_XML_ATTR(L"r:id", val.bitmap->rId );
|
||||
|
||||
if (val.opacity)
|
||||
{
|
||||
CP_XML_ATTR(L"opacity",(int)(*val.opacity));
|
||||
}
|
||||
|
||||
if (val.bitmap->bTile)
|
||||
{
|
||||
CP_XML_ATTR(L"type", L"pattern");
|
||||
}
|
||||
else
|
||||
{
|
||||
CP_XML_ATTR(L"type", L"frame");
|
||||
}
|
||||
CP_XML_ATTR(L"recolor", L"t");
|
||||
}
|
||||
}
|
||||
}
|
||||
void oox_serialize_bitmap_fill(std::wostream & strm, const _oox_fill & val)
|
||||
{
|
||||
if (!val.bitmap) return;
|
||||
@ -164,20 +209,69 @@ void oox_serialize_bitmap_fill(std::wostream & strm, const _oox_fill & val)
|
||||
{
|
||||
CP_XML_NODE(L"a:fillRect");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
void vml_serialize_gradient_fill(std::wostream & strm, const _oox_fill & val)
|
||||
{
|
||||
if (!val.gradient) return;
|
||||
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"v:fill")
|
||||
{
|
||||
if (!val.gradient->colors.empty())
|
||||
{
|
||||
CP_XML_ATTR(L"color2", val.gradient->colors[val.gradient->colors.size() - 1].color_ref);
|
||||
|
||||
std::wstring colors_value;
|
||||
for (size_t i = 0; i < val.gradient->colors.size(); i++)
|
||||
{
|
||||
colors_value += std::to_wstring(val.gradient->colors[i].pos) + L"% #" +
|
||||
val.gradient->colors[i].color_ref + L",";
|
||||
}
|
||||
|
||||
if (!colors_value.empty())
|
||||
{
|
||||
CP_XML_ATTR(L"colors", colors_value.substr(0, colors_value.length() - 1));
|
||||
}
|
||||
}
|
||||
double angle =/*360 - */val.gradient->angle/* * 180./3.14159265358979323846*/;
|
||||
|
||||
CP_XML_ATTR(L"focus", L"100%");
|
||||
switch(val.gradient->style)
|
||||
{
|
||||
case 0:
|
||||
CP_XML_ATTR(L"type", L"gradient");
|
||||
CP_XML_ATTR(L"method", L"linear");
|
||||
CP_XML_ATTR(L"angle", angle);
|
||||
break;
|
||||
case 1:
|
||||
//CP_XML_ATTR(L"type", L"gradientRadial");
|
||||
//break;
|
||||
case 2:
|
||||
//CP_XML_ATTR(L"type", L"gradientCenter");
|
||||
//break;
|
||||
case 3:
|
||||
//CP_XML_ATTR(L"type", L"gradientUnscaled");
|
||||
//break;
|
||||
CP_XML_ATTR(L"type", L"gradientRadial");
|
||||
}
|
||||
if (val.gradient->style > 0)
|
||||
{
|
||||
double focus_x = ((val.gradient->rect[2] - val.gradient->rect[0]) /2. + val.gradient->rect[0]) / 100.;
|
||||
double focus_y = ((val.gradient->rect[3] - val.gradient->rect[1]) /2. + val.gradient->rect[1]) / 100.;
|
||||
|
||||
CP_XML_ATTR(L"focusposition", XmlUtils::DoubleToString(focus_x, L"%.2f") + L"," + XmlUtils::DoubleToString(focus_y, L"%.2f"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
void oox_serialize_gradient_fill(std::wostream & strm, const _oox_fill & val)
|
||||
{
|
||||
if (!val.gradient)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (!val.gradient) return;
|
||||
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
@ -233,6 +327,7 @@ void oox_serialize_gradient_fill(std::wostream & strm, const _oox_fill & val)
|
||||
void oox_serialize_hatch_fill(std::wostream & strm, const _oox_fill & val)
|
||||
{
|
||||
if (!val.hatch)return;
|
||||
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"a:pattFill")
|
||||
@ -253,7 +348,38 @@ void oox_serialize_hatch_fill(std::wostream & strm, const _oox_fill & val)
|
||||
}
|
||||
}
|
||||
}
|
||||
void oox_serialize_fill(std::wostream & strm, const _oox_fill & val)
|
||||
|
||||
void vml_serialize_background (std::wostream & strm, const _oox_fill & val, const std::wstring & color, int id)
|
||||
{
|
||||
if (val.type == 0) return;
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"v:background")
|
||||
{
|
||||
CP_XML_ATTR(L"id", L"_x0000_s" + std::to_wstring(1024 + id));
|
||||
CP_XML_ATTR(L"o:bwmode", L"white");
|
||||
CP_XML_ATTR(L"fillcolor", L"#" + color);
|
||||
CP_XML_ATTR(L"o:targetscreensize", L"1024,768");
|
||||
switch (val.type)
|
||||
{
|
||||
case 1:
|
||||
vml_serialize_solid_fill(CP_XML_STREAM(), val);
|
||||
break;
|
||||
case 2:
|
||||
vml_serialize_bitmap_fill(CP_XML_STREAM(), val);
|
||||
break;
|
||||
case 3:
|
||||
vml_serialize_gradient_fill(CP_XML_STREAM(), val);
|
||||
break;
|
||||
case 4:
|
||||
//vml_serialize_hatch_fill(CP_XML_STREAM(), val);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void oox_serialize_fill (std::wostream & strm, const _oox_fill & val)
|
||||
{
|
||||
switch (val.type)
|
||||
{
|
||||
|
||||
@ -143,9 +143,10 @@ namespace oox {
|
||||
}
|
||||
};
|
||||
|
||||
void oox_serialize_fill(std::wostream & strm, const _oox_fill & val);
|
||||
void oox_serialize_srgb(std::wostream & strm,std::wstring color,_CP_OPT(double) opacity);
|
||||
void oox_serialize_srgb(std::wostream & strm,std::wstring color,_CP_OPT(odf_types::percent) opacity);
|
||||
void vml_serialize_background (std::wostream & strm, const _oox_fill & val, const std::wstring & color, int id);
|
||||
void oox_serialize_fill (std::wostream & strm, const _oox_fill & val);
|
||||
void oox_serialize_srgb (std::wostream & strm,std::wstring color,_CP_OPT(double) opacity);
|
||||
void oox_serialize_srgb (std::wostream & strm,std::wstring color,_CP_OPT(odf_types::percent) opacity);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -99,7 +99,7 @@ void pptx_conversion_context::process_layouts()
|
||||
get_text_context().set_process_layouts(true);
|
||||
|
||||
//актуальные
|
||||
for (int layout_index =0; layout_index < layouts.content.size(); layout_index++)
|
||||
for (size_t layout_index =0; layout_index < layouts.content.size(); layout_index++)
|
||||
{
|
||||
start_layout(layout_index);
|
||||
|
||||
@ -116,7 +116,7 @@ void pptx_conversion_context::process_layouts()
|
||||
|
||||
if (master)
|
||||
{
|
||||
for (int i = 0; i < master->content_.size(); i++)
|
||||
for (size_t i = 0; i < master->content_.size(); i++)
|
||||
{
|
||||
odf_reader::office_element_ptr elm = master->content_[i];
|
||||
if (elm->get_type() == odf_reader::typeDrawFrame)
|
||||
@ -152,7 +152,7 @@ void pptx_conversion_context::process_master_pages()
|
||||
get_text_context().set_process_layouts(true);
|
||||
|
||||
//берем только актуальные
|
||||
for (int master_index =0; master_index < masters.content.size();master_index++)
|
||||
for (size_t master_index =0; master_index < masters.content.size();master_index++)
|
||||
{
|
||||
start_master(master_index);
|
||||
|
||||
@ -210,7 +210,7 @@ void pptx_conversion_context::end_document()
|
||||
{
|
||||
unsigned int count = 1;
|
||||
|
||||
for (int i = 0; i < slideMasters_.size(); i++)
|
||||
for (size_t i = 0; i < slideMasters_.size(); i++)
|
||||
{
|
||||
pptx_xml_slideMaster_ptr& slideM = slideMasters_[i];
|
||||
|
||||
@ -233,7 +233,7 @@ void pptx_conversion_context::end_document()
|
||||
}
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
count=0;
|
||||
for (int i = 0; i < slides_.size(); i++)
|
||||
for (size_t i = 0; i < slides_.size(); i++)
|
||||
{
|
||||
pptx_xml_slide_ptr& slide = slides_[i];
|
||||
|
||||
@ -255,7 +255,7 @@ void pptx_conversion_context::end_document()
|
||||
count++;
|
||||
}
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
for (int i = 0; i < slideLayouts_.size(); i++)
|
||||
for (size_t i = 0; i < slideLayouts_.size(); i++)
|
||||
{
|
||||
pptx_xml_slideLayout_ptr& slideL = slideLayouts_[i];
|
||||
|
||||
@ -287,7 +287,7 @@ void pptx_conversion_context::end_document()
|
||||
//добавляем диаграммы
|
||||
|
||||
count = 0;
|
||||
for (int i = 0; i < charts_.size(); i++)
|
||||
for (size_t i = 0; i < charts_.size(); i++)
|
||||
{
|
||||
count++;
|
||||
package::chart_content_ptr content = package::chart_content::create();
|
||||
@ -300,7 +300,7 @@ void pptx_conversion_context::end_document()
|
||||
}
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//добавляем темы
|
||||
for (int i=0; i < themes_.size();i++)
|
||||
for (size_t i=0; i < themes_.size(); i++)
|
||||
{
|
||||
output_document_->get_ppt_files().add_theme(themes_[i]);
|
||||
|
||||
@ -500,7 +500,7 @@ bool pptx_conversion_context::start_master(int master_index)
|
||||
process_theme(masters.content[master_index].master_name);//add default theme - одинаковые но под разными именами
|
||||
current_master().add_theme(current_theme().id(), L"tId1");
|
||||
|
||||
for (long i=0;i<masters.content[master_index].layouts.size();i++)
|
||||
for (size_t i = 0; i < masters.content[master_index].layouts.size(); i++)
|
||||
{
|
||||
current_master().add_layout(masters.content[master_index].layouts[i].Id, masters.content[master_index].layouts[i].rId, 0x80000000 + last_uniq_big_id++);
|
||||
}
|
||||
|
||||
@ -207,7 +207,7 @@ void xlsx_drawing_context::end_group()
|
||||
group_rect.cy -= group_rect.y;
|
||||
group_rect.cx -= group_rect.x;
|
||||
|
||||
for (int i = 0; i < impl_->groups_.back()->child_objects_.size(); i++)
|
||||
for (size_t i = 0; i < impl_->groups_.back()->child_objects_.size(); i++)
|
||||
{
|
||||
_rect & r = impl_->groups_.back()->child_objects_[i].svg_rect_.get();
|
||||
|
||||
@ -615,7 +615,7 @@ void xlsx_drawing_context::process_objects(xlsx_table_metrics & table_metrics)
|
||||
}
|
||||
void xlsx_drawing_context::process_objects(std::vector<drawing_object_description> objects, xlsx_table_metrics & table_metrics, xlsx_drawings_ptr xlsx_drawings_)
|
||||
{
|
||||
for (int i = 0 ; i < objects.size(); i++)
|
||||
for (size_t i = 0 ; i < objects.size(); i++)
|
||||
{
|
||||
drawing_object_description & obj = objects[i];
|
||||
|
||||
|
||||
@ -75,7 +75,7 @@ void xlsx_data_range::serialize_sort (std::wostream & _Wostream)
|
||||
if (!byRow)
|
||||
CP_XML_ATTR(L"columnSort", true);
|
||||
|
||||
for (int i = 0 ; i < bySort.size(); i++)
|
||||
for (size_t i = 0 ; i < bySort.size(); i++)
|
||||
{
|
||||
bool in_range = true;
|
||||
std::wstring ref1, ref2;
|
||||
|
||||
@ -134,7 +134,7 @@ void xlsx_conversion_context::end_document()
|
||||
{
|
||||
std::wstringstream workbook_content;
|
||||
|
||||
for (int i = 0; i < sheets_.size(); i++)
|
||||
for (size_t i = 0; i < sheets_.size(); i++)
|
||||
{
|
||||
xlsx_xml_worksheet_ptr& sheet = sheets_[i];
|
||||
|
||||
@ -191,7 +191,7 @@ void xlsx_conversion_context::end_document()
|
||||
}
|
||||
//добавляем диаграммы
|
||||
|
||||
for (int i = 0; i < charts_.size(); i++)
|
||||
for (size_t i = 0; i < charts_.size(); i++)
|
||||
{
|
||||
package::chart_content_ptr content = package::chart_content::create();
|
||||
|
||||
@ -271,7 +271,7 @@ void xlsx_conversion_context::serialize_bookViews(std::wostream & strm)
|
||||
{
|
||||
if (sActiveTable)
|
||||
{
|
||||
for (int i = 0; i < sheets_.size(); i++)
|
||||
for (size_t i = 0; i < sheets_.size(); i++)
|
||||
{
|
||||
if (sheets_[i]->name() == *sActiveTable)
|
||||
{
|
||||
|
||||
@ -44,7 +44,7 @@ const wchar_t * abstract_xml::name = L"abstract-xml";
|
||||
|
||||
std::wostream & abstract_xml::text_to_stream(std::wostream & _Wostream) const
|
||||
{
|
||||
for (int i = 0; i < xml_content_.size(); i++)
|
||||
for (size_t i = 0; i < xml_content_.size(); i++)
|
||||
{
|
||||
xml_content_[i]->text_to_stream(_Wostream);
|
||||
}
|
||||
@ -53,7 +53,7 @@ std::wostream & abstract_xml::text_to_stream(std::wostream & _Wostream) const
|
||||
|
||||
std::wostream & abstract_xml::xml_to_stream(std::wostream & _Wostream) const
|
||||
{
|
||||
for (int i = 0; i < xml_content_.size(); i++)
|
||||
for (size_t i = 0; i < xml_content_.size(); i++)
|
||||
{
|
||||
xml_content_[i]->xml_to_stream(_Wostream);
|
||||
}
|
||||
|
||||
@ -91,7 +91,7 @@ void calcext_conditional_formats::add_child_element( xml::sax * Reader, const st
|
||||
}
|
||||
void calcext_conditional_formats::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
{
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
}
|
||||
@ -116,7 +116,7 @@ void calcext_conditional_format::xlsx_convert(oox::xlsx_conversion_context & Con
|
||||
|
||||
Context.start_conditional_format(*calcext_target_range_address_);
|
||||
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
}
|
||||
@ -149,7 +149,7 @@ void calcext_data_bar::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
|
||||
Context.set_conditional_format_dataBar(calcext_data_bar_attr_.calcext_min_length_, calcext_data_bar_attr_.calcext_max_length_);
|
||||
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
}
|
||||
@ -170,7 +170,7 @@ void calcext_color_scale::add_child_element( xml::sax * Reader, const std::wstri
|
||||
void calcext_color_scale::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
{
|
||||
Context.start_conditional_format_rule(3);
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
}
|
||||
@ -196,7 +196,7 @@ void calcext_icon_set::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
if (calcext_show_value_)
|
||||
Context.set_conditional_format_showval(*calcext_show_value_);
|
||||
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
}
|
||||
|
||||
@ -109,11 +109,11 @@ void common_draw_fill_attlist::add_attributes( const xml::attributes_wc_ptr & At
|
||||
}
|
||||
void common_draw_fill_attlist::serialize(CP_ATTR_NODE)
|
||||
{
|
||||
CP_XML_ATTR_OPT(L"draw:fill-color", draw_fill_color_);
|
||||
CP_XML_ATTR_OPT(L"draw:fill", draw_fill_);
|
||||
CP_XML_ATTR_OPT(L"draw:fill-color", draw_fill_color_);
|
||||
CP_XML_ATTR_OPT(L"draw:fill", draw_fill_);
|
||||
|
||||
CP_XML_ATTR_OPT(L"draw:opacity", draw_opacity_);
|
||||
CP_XML_ATTR_OPT(L"draw:image-opacity", draw_image_opacity_);
|
||||
CP_XML_ATTR_OPT(L"draw:opacity", draw_opacity_);
|
||||
CP_XML_ATTR_OPT(L"draw:image-opacity", draw_image_opacity_);
|
||||
|
||||
CP_XML_ATTR_OPT(L"draw:fill-image-name", draw_fill_image_name_);
|
||||
CP_XML_ATTR_OPT(L"draw:fill-gradient-name", draw_fill_gradient_name_);
|
||||
|
||||
@ -216,10 +216,10 @@ int Compute_BorderWidth(const graphic_format_properties & graphicProperties, Bor
|
||||
|
||||
switch(borderSide)
|
||||
{
|
||||
case sideTop: borderValue = graphicProperties.common_border_attlist_.fo_border_top_; break;
|
||||
case sideBottom: borderValue = graphicProperties.common_border_attlist_.fo_border_bottom_; break;
|
||||
case sideLeft: borderValue = graphicProperties.common_border_attlist_.fo_border_left_; break;
|
||||
case sideRight: borderValue = graphicProperties.common_border_attlist_.fo_border_right_; break;
|
||||
case sideTop: borderValue = graphicProperties.common_border_attlist_.fo_border_top_; break;
|
||||
case sideBottom: borderValue = graphicProperties.common_border_attlist_.fo_border_bottom_; break;
|
||||
case sideLeft: borderValue = graphicProperties.common_border_attlist_.fo_border_left_; break;
|
||||
case sideRight: borderValue = graphicProperties.common_border_attlist_.fo_border_right_; break;
|
||||
}
|
||||
|
||||
if (!borderValue)
|
||||
@ -281,14 +281,14 @@ void Compute_GradientFill(draw_gradient * image_style,oox::oox_gradient_fill_ptr
|
||||
fill->style = 0;
|
||||
|
||||
point.pos = 0;
|
||||
if (image_style->draw_start_color_)point.color_ref = image_style->draw_start_color_->get_hex_value();
|
||||
if (image_style->draw_start_intensity_)point.opacity = image_style->draw_start_intensity_->get_value();
|
||||
if (image_style->draw_start_color_) point.color_ref = image_style->draw_start_color_->get_hex_value();
|
||||
if (image_style->draw_start_intensity_) point.opacity = image_style->draw_start_intensity_->get_value();
|
||||
|
||||
fill->colors.push_back(point);
|
||||
|
||||
point.pos = 100;
|
||||
if (image_style->draw_end_color_)point.color_ref = image_style->draw_end_color_->get_hex_value();
|
||||
if (image_style->draw_end_intensity_)point.opacity = image_style->draw_end_intensity_->get_value();
|
||||
if (image_style->draw_end_color_) point.color_ref = image_style->draw_end_color_->get_hex_value();
|
||||
if (image_style->draw_end_intensity_) point.opacity = image_style->draw_end_intensity_->get_value();
|
||||
|
||||
fill->colors.push_back(point);
|
||||
}break;
|
||||
@ -297,20 +297,20 @@ void Compute_GradientFill(draw_gradient * image_style,oox::oox_gradient_fill_ptr
|
||||
fill->style = 0;
|
||||
|
||||
point.pos = 0;
|
||||
if (image_style->draw_end_color_)point.color_ref = image_style->draw_end_color_->get_hex_value();
|
||||
if (image_style->draw_end_intensity_)point.opacity = image_style->draw_end_intensity_->get_value();
|
||||
if (image_style->draw_end_color_) point.color_ref = image_style->draw_end_color_->get_hex_value();
|
||||
if (image_style->draw_end_intensity_) point.opacity = image_style->draw_end_intensity_->get_value();
|
||||
|
||||
fill->colors.push_back(point);
|
||||
|
||||
point.pos = 50;
|
||||
if (image_style->draw_start_color_)point.color_ref = image_style->draw_start_color_->get_hex_value();
|
||||
if (image_style->draw_start_intensity_)point.opacity = image_style->draw_start_intensity_->get_value();
|
||||
if (image_style->draw_start_color_) point.color_ref = image_style->draw_start_color_->get_hex_value();
|
||||
if (image_style->draw_start_intensity_) point.opacity = image_style->draw_start_intensity_->get_value();
|
||||
|
||||
fill->colors.push_back(point);
|
||||
|
||||
point.pos = 100;
|
||||
if (image_style->draw_end_color_)point.color_ref = image_style->draw_end_color_->get_hex_value();
|
||||
if (image_style->draw_end_intensity_)point.opacity = image_style->draw_end_intensity_->get_value();
|
||||
if (image_style->draw_end_color_) point.color_ref = image_style->draw_end_color_->get_hex_value();
|
||||
if (image_style->draw_end_intensity_) point.opacity = image_style->draw_end_intensity_->get_value();
|
||||
|
||||
fill->colors.push_back(point);
|
||||
}break;
|
||||
@ -319,41 +319,35 @@ void Compute_GradientFill(draw_gradient * image_style,oox::oox_gradient_fill_ptr
|
||||
case gradient_style::square:
|
||||
case gradient_style::rectangular:
|
||||
{
|
||||
if (style == gradient_style::radial || style == gradient_style::ellipsoid) fill->style = 2;
|
||||
if (style == gradient_style::radial ||
|
||||
style == gradient_style::ellipsoid) fill->style = 2;
|
||||
if (style == gradient_style::square ) fill->style = 1;
|
||||
if (style == gradient_style::rectangular) fill->style = 3;
|
||||
|
||||
point.pos = 0;
|
||||
if (image_style->draw_end_color_)point.color_ref = image_style->draw_end_color_->get_hex_value();
|
||||
if (image_style->draw_end_intensity_)point.opacity = image_style->draw_end_intensity_->get_value();
|
||||
|
||||
fill->colors.push_back(point);
|
||||
|
||||
point.pos = 100;
|
||||
if (image_style->draw_start_color_)point.color_ref = image_style->draw_start_color_->get_hex_value();
|
||||
if (image_style->draw_start_intensity_)point.opacity = image_style->draw_start_intensity_->get_value();
|
||||
if (image_style->draw_start_color_) point.color_ref = image_style->draw_start_color_->get_hex_value();
|
||||
if (image_style->draw_start_intensity_) point.opacity = image_style->draw_start_intensity_->get_value();
|
||||
|
||||
fill->colors.push_back(point);
|
||||
|
||||
if (image_style->draw_cx_)//хохма - у мс в конвертилке из open-office перепутаны l & r !!!
|
||||
point.pos = 100;
|
||||
if (image_style->draw_end_color_) point.color_ref = image_style->draw_end_color_->get_hex_value();
|
||||
if (image_style->draw_end_intensity_) point.opacity = image_style->draw_end_intensity_->get_value();
|
||||
|
||||
fill->colors.push_back(point);
|
||||
|
||||
fill->rect[0] = fill->rect[1] = 0;
|
||||
fill->rect[2] = fill->rect[3] = 100;
|
||||
|
||||
if (image_style->draw_cx_)
|
||||
{
|
||||
fill->rect[0]=image_style->draw_cx_->get_value();
|
||||
fill->rect[2]=100-image_style->draw_cx_->get_value();
|
||||
}
|
||||
else
|
||||
{
|
||||
fill->rect[0]=0;
|
||||
fill->rect[2]=100;
|
||||
fill->rect[0] = 100 - image_style->draw_cx_->get_value();
|
||||
fill->rect[2] = image_style->draw_cx_->get_value();
|
||||
}
|
||||
if (image_style->draw_cy_)
|
||||
{
|
||||
fill->rect[1]=image_style->draw_cy_->get_value();
|
||||
fill->rect[3]=100-image_style->draw_cy_->get_value();
|
||||
}
|
||||
else
|
||||
{
|
||||
fill->rect[1]=0;
|
||||
fill->rect[3]=100;
|
||||
fill->rect[1] = 100 - image_style->draw_cy_->get_value();
|
||||
fill->rect[3] = image_style->draw_cy_->get_value();
|
||||
}
|
||||
}break;
|
||||
}
|
||||
@ -427,8 +421,14 @@ void Compute_GraphicFill(const common_draw_fill_attlist & props, const office_el
|
||||
{
|
||||
switch(image->style_repeat_->get_type())
|
||||
{
|
||||
case style_repeat::Repeat : fill.bitmap->bTile = true; break;
|
||||
case style_repeat::Stretch : fill.bitmap->bStretch = true; break;
|
||||
case style_repeat::Repeat :
|
||||
fill.bitmap->bTile = true;
|
||||
fill.bitmap->bStretch = false;
|
||||
break;
|
||||
case style_repeat::Stretch :
|
||||
fill.bitmap->bStretch = true;
|
||||
fill.bitmap->bTile = false; //?? для background точно выключать
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (image->draw_opacity_)
|
||||
@ -445,8 +445,14 @@ void Compute_GraphicFill(const common_draw_fill_attlist & props, const office_el
|
||||
{
|
||||
switch(props.style_repeat_->get_type())
|
||||
{
|
||||
case style_repeat::Repeat : fill.bitmap->bTile = true; break;
|
||||
case style_repeat::Stretch : fill.bitmap->bStretch = true; break;
|
||||
case style_repeat::Repeat :
|
||||
fill.bitmap->bTile = true;
|
||||
fill.bitmap->bStretch = false;
|
||||
break;
|
||||
case style_repeat::Stretch :
|
||||
fill.bitmap->bStretch = true;
|
||||
fill.bitmap->bTile = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -660,7 +666,7 @@ void xlsx_convert_transforms(std::wstring transformStr, oox::xlsx_conversion_con
|
||||
|
||||
boost::algorithm::split(transforms,transformStr, boost::algorithm::is_any_of(L")"), boost::algorithm::token_compress_on);
|
||||
|
||||
for (int i = 0; i < transforms.size(); i++)
|
||||
for (size_t i = 0; i < transforms.size(); i++)
|
||||
{
|
||||
std::vector<std::wstring> transform;
|
||||
boost::algorithm::split(transform, transforms[i], boost::algorithm::is_any_of(L"("), boost::algorithm::token_compress_on);
|
||||
|
||||
@ -592,7 +592,7 @@ int ComputeMarginY(const style_page_layout_properties_attlist & pageProperties,
|
||||
_CP_OPT(vertical_pos) styleVerticallPos = graphicProperties.common_vertical_pos_attlist_.style_vertical_pos_;
|
||||
|
||||
_CP_OPT(double) dVal;
|
||||
if (GetProperty(additional, L"svg:translate_y", dVal));
|
||||
GetProperty(additional, L"svg:translate_y", dVal);
|
||||
|
||||
const _CP_OPT(length) translation = length(dVal ? *dVal : 0, length::pt);
|
||||
const _CP_OPT(length) pageHeight = pageProperties.fo_page_height_;
|
||||
@ -893,17 +893,17 @@ void common_draw_docx_convert(oox::docx_conversion_context & Context, const unio
|
||||
|
||||
Compute_GraphicFill(graphicProperties.common_draw_fill_attlist_, graphicProperties.style_background_image_, Context.root()->odf_context().drawStyles() ,drawing->fill, bTxbx);
|
||||
|
||||
if ((drawing->fill.bitmap) && (drawing->fill.bitmap->rId.length() < 1))
|
||||
if ((drawing->fill.bitmap) && (drawing->fill.bitmap->rId.empty()))
|
||||
{
|
||||
std::wstring href = drawing->fill.bitmap->xlink_href_;
|
||||
drawing->fill.bitmap->rId = Context.add_mediaitem(href, oox::typeImage, drawing->fill.bitmap->isInternal, href);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////
|
||||
drawing->additional.push_back(odf_reader::_property(L"border_width_left", Compute_BorderWidth(graphicProperties, sideLeft)));
|
||||
drawing->additional.push_back(odf_reader::_property(L"border_width_left", Compute_BorderWidth(graphicProperties, sideLeft)));
|
||||
drawing->additional.push_back(odf_reader::_property(L"border_width_top", Compute_BorderWidth(graphicProperties, sideTop)));
|
||||
drawing->additional.push_back(odf_reader::_property(L"border_width_right", Compute_BorderWidth(graphicProperties, sideRight)));
|
||||
drawing->additional.push_back(odf_reader::_property(L"border_width_bottom", Compute_BorderWidth(graphicProperties, sideBottom)));
|
||||
drawing->additional.push_back(odf_reader::_property(L"border_width_right", Compute_BorderWidth(graphicProperties, sideRight)));
|
||||
drawing->additional.push_back(odf_reader::_property(L"border_width_bottom", Compute_BorderWidth(graphicProperties, sideBottom)));
|
||||
|
||||
if (graphicProperties.common_border_attlist_.fo_border_)
|
||||
{
|
||||
@ -1111,7 +1111,7 @@ void draw_image::docx_convert(oox::docx_conversion_context & Context)
|
||||
Context.set_run_state (false);
|
||||
Context.set_paragraph_state (false);
|
||||
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->docx_convert(Context);
|
||||
}
|
||||
@ -1393,7 +1393,7 @@ void draw_frame::docx_convert(oox::docx_conversion_context & Context)
|
||||
|
||||
common_draw_docx_convert(Context, common_draw_attlists_, drawing);
|
||||
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->docx_convert(Context);
|
||||
}
|
||||
|
||||
@ -199,7 +199,7 @@ void draw_frame::pptx_convert(oox::pptx_conversion_context & Context)
|
||||
////////////////////////////////////////////////
|
||||
oox_drawing_ = oox_drawing_ptr(new oox::_pptx_drawing());
|
||||
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->pptx_convert(Context);
|
||||
}
|
||||
@ -217,7 +217,7 @@ void draw_image::pptx_convert(oox::pptx_conversion_context & Context)
|
||||
////////////////////////////////////в принципе достаточно общая часть ...
|
||||
Context.get_text_context().start_object();
|
||||
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->pptx_convert(Context);
|
||||
}
|
||||
@ -233,7 +233,7 @@ void draw_chart::pptx_convert(oox::pptx_conversion_context & Context)
|
||||
const std::wstring href = common_xlink_attlist_.href_.get_value_or(L"");
|
||||
Context.get_slide_context().set_chart(href);
|
||||
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->pptx_convert(Context);
|
||||
}
|
||||
@ -244,7 +244,7 @@ void draw_text_box::pptx_convert(oox::pptx_conversion_context & Context)
|
||||
Context.get_slide_context().set_text_box(); //rect с наваротами
|
||||
Context.get_text_context().start_object();
|
||||
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->pptx_convert(Context);
|
||||
}
|
||||
|
||||
@ -104,7 +104,7 @@ void draw_g::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
}
|
||||
////////////////////////////////////////////////
|
||||
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
office_element_ptr const & elm = content_[i];
|
||||
elm->xlsx_convert(Context);
|
||||
@ -178,10 +178,10 @@ void draw_frame::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
////////////////////////////////////////////////////////////////////
|
||||
properties.apply_to(Context.get_drawing_context().get_properties());
|
||||
|
||||
Context.get_drawing_context().set_property(odf_reader::_property(L"border_width_left", Compute_BorderWidth(properties, sideLeft)));
|
||||
Context.get_drawing_context().set_property(odf_reader::_property(L"border_width_top", Compute_BorderWidth(properties, sideTop)));
|
||||
Context.get_drawing_context().set_property(odf_reader::_property(L"border_width_right",Compute_BorderWidth(properties, sideRight)));
|
||||
Context.get_drawing_context().set_property(odf_reader::_property(L"border_width_bottom", Compute_BorderWidth(properties, sideBottom)));
|
||||
Context.get_drawing_context().set_property(odf_reader::_property(L"border_width_left", Compute_BorderWidth(properties, sideLeft)));
|
||||
Context.get_drawing_context().set_property(odf_reader::_property(L"border_width_top", Compute_BorderWidth(properties, sideTop)));
|
||||
Context.get_drawing_context().set_property(odf_reader::_property(L"border_width_right", Compute_BorderWidth(properties, sideRight)));
|
||||
Context.get_drawing_context().set_property(odf_reader::_property(L"border_width_bottom", Compute_BorderWidth(properties, sideBottom)));
|
||||
|
||||
if (properties.fo_clip_)
|
||||
{
|
||||
@ -196,7 +196,7 @@ void draw_frame::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
oox_drawing_ = oox_drawing_ptr(new oox::_xlsx_drawing());
|
||||
|
||||
////////////////////////////////////////////////
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
office_element_ptr const & elm = content_[i];
|
||||
elm->xlsx_convert(Context);
|
||||
@ -215,7 +215,7 @@ void draw_image::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
////////////////////////////////////в принципе достаточно общая часть ...
|
||||
Context.get_text_context().start_drawing_content();//... если в объекте есть текст он привяжется к объекту - иначе к ячейке
|
||||
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
}
|
||||
@ -232,7 +232,7 @@ void draw_chart::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
const std::wstring href = common_xlink_attlist_.href_.get_value_or(L"");
|
||||
Context.get_drawing_context().set_chart(href);
|
||||
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
}
|
||||
@ -243,7 +243,7 @@ void draw_text_box::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
|
||||
Context.get_text_context().start_drawing_content();
|
||||
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
}
|
||||
|
||||
@ -47,11 +47,12 @@
|
||||
#include "serialize_elements.h"
|
||||
#include "style_graphic_properties.h"
|
||||
|
||||
#include "odfcontext.h"
|
||||
|
||||
#include "datatypes/length.h"
|
||||
#include "datatypes/borderstyle.h"
|
||||
|
||||
#include "odfcontext.h"
|
||||
#include "../odf/svg_parser.h"
|
||||
#include "../docx/oox_drawing.h"
|
||||
|
||||
namespace cpdoccore {
|
||||
|
||||
@ -235,14 +236,16 @@ void draw_path::reset_svg_path()
|
||||
}
|
||||
else
|
||||
{
|
||||
std::vector<svg_path::_polyline> o_Polyline_pt;
|
||||
std::vector<svg_path::_polyline> o_Polyline_cm;
|
||||
std::vector<::svg_path::_polyline> o_Polyline_pt;
|
||||
std::vector<::svg_path::_polyline> o_Polyline_cm;
|
||||
|
||||
bool res = svg_path::parseSvgD(o_Polyline_cm,draw_path_attlist_.svg_d_.get(),false);
|
||||
bool res = ::svg_path::parseSvgD(o_Polyline_cm, draw_path_attlist_.svg_d_.get(), false);
|
||||
|
||||
BOOST_FOREACH(svg_path::_polyline & poly, o_Polyline_cm)
|
||||
for (size_t i = 0; i < o_Polyline_cm.size(); i++)
|
||||
{
|
||||
for (long i=0;i<poly.points.size();i++)
|
||||
::svg_path::_polyline & poly = o_Polyline_cm[i];
|
||||
|
||||
for (size_t i = 0; i < poly.points.size(); i++)
|
||||
{
|
||||
if (poly.points[i].x)
|
||||
{
|
||||
@ -259,7 +262,7 @@ void draw_path::reset_svg_path()
|
||||
{
|
||||
//сформируем xml-oox сдесь ... а то придется плодить массивы в drawing .. хоть и не красиво..
|
||||
std::wstringstream output_;
|
||||
svg_path::oox_serialize(output_, o_Polyline_pt);
|
||||
::svg_path::oox_serialize(output_, o_Polyline_pt);
|
||||
additional_.push_back(odf_reader::_property(L"custom_path",output_.str()));
|
||||
}
|
||||
}
|
||||
@ -295,14 +298,16 @@ void draw_polygon::reset_polygon_path()
|
||||
}
|
||||
else
|
||||
{
|
||||
std::vector<svg_path::_polyline> o_Polyline_pt;
|
||||
std::vector<svg_path::_polyline> o_Polyline_cm;
|
||||
std::vector<::svg_path::_polyline> o_Polyline_pt;
|
||||
std::vector<::svg_path::_polyline> o_Polyline_cm;
|
||||
|
||||
bool res = svg_path::parsePolygon(o_Polyline_cm,draw_polygon_attlist_.draw_points_.get(),false, true);
|
||||
bool res = ::svg_path::parsePolygon(o_Polyline_cm, draw_polygon_attlist_.draw_points_.get(),false, true);
|
||||
|
||||
BOOST_FOREACH(svg_path::_polyline & poly, o_Polyline_cm)
|
||||
for (size_t ind = 0 ; ind < o_Polyline_cm.size(); ind++)
|
||||
{
|
||||
for (long i=0;i<poly.points.size();i++)
|
||||
::svg_path::_polyline & poly = o_Polyline_cm[ind];
|
||||
|
||||
for (size_t i = 0; i < poly.points.size(); i++)
|
||||
{
|
||||
if (poly.points[i].x)
|
||||
{
|
||||
@ -319,7 +324,7 @@ void draw_polygon::reset_polygon_path()
|
||||
{
|
||||
//сформируем xml-oox сдесь ... а то придется плодить массивы в drawing .. хоть и не красиво..
|
||||
std::wstringstream output_;
|
||||
svg_path::oox_serialize(output_, o_Polyline_pt);
|
||||
::svg_path::oox_serialize(output_, o_Polyline_pt);
|
||||
additional_.push_back(odf_reader::_property(L"custom_path",output_.str()));
|
||||
}
|
||||
}
|
||||
@ -351,28 +356,30 @@ void draw_polyline::reset_polyline_path()
|
||||
}
|
||||
else
|
||||
{
|
||||
std::vector<svg_path::_polyline> o_Polyline_pt;
|
||||
std::vector<svg_path::_polyline> o_Polyline_cm;
|
||||
std::vector<::svg_path::_polyline> o_Polyline_pt;
|
||||
std::vector<::svg_path::_polyline> o_Polyline_cm;
|
||||
|
||||
bool res = svg_path::parsePolygon(o_Polyline_cm, draw_polyline_attlist_.draw_points_.get(), false, true);
|
||||
bool res = ::svg_path::parsePolygon(o_Polyline_cm, draw_polyline_attlist_.draw_points_.get(), false, true);
|
||||
|
||||
_CP_OPT(double) start_x, start_y;
|
||||
|
||||
BOOST_FOREACH(svg_path::_polyline & poly, o_Polyline_cm)
|
||||
for (size_t ind = 0 ; ind < o_Polyline_cm.size(); ind++)
|
||||
{
|
||||
for (long i=0;i<poly.points.size();i++)
|
||||
::svg_path::_polyline & poly = o_Polyline_cm[ind];
|
||||
|
||||
for (size_t i = 0; i < poly.points.size(); i++)
|
||||
{
|
||||
if (poly.points[i].x)
|
||||
{
|
||||
if (!start_x)//вообщето это не верно .. но из за разных точек осей поворота фигура может "улететь"
|
||||
start_x = length(poly.points[i].x.get()/1000.,length::cm).get_value_unit(length::emu);
|
||||
poly.points[i].x = length(poly.points[i].x.get()/1000.,length::cm).get_value_unit(length::emu);// - *start_x;
|
||||
start_x = length(poly.points[i].x.get()/1000., length::cm).get_value_unit(length::emu);
|
||||
poly.points[i].x = length(poly.points[i].x.get()/1000., length::cm).get_value_unit(length::emu);// - *start_x;
|
||||
}
|
||||
if (poly.points[i].y)
|
||||
{
|
||||
if (!start_y)
|
||||
start_y = length(poly.points[i].y.get()/1000.,length::cm).get_value_unit(length::emu);
|
||||
poly.points[i].y = length(poly.points[i].y.get()/1000.,length::cm).get_value_unit(length::emu);// - *start_y;
|
||||
start_y = length(poly.points[i].y.get()/1000., length::cm).get_value_unit(length::emu);
|
||||
poly.points[i].y = length(poly.points[i].y.get()/1000., length::cm).get_value_unit(length::emu);// - *start_y;
|
||||
}
|
||||
}
|
||||
o_Polyline_pt.push_back(poly);
|
||||
@ -381,8 +388,9 @@ void draw_polyline::reset_polyline_path()
|
||||
{
|
||||
//сформируем xml-oox сдесь ... а то придется плодить массивы в drawing .. хоть и не красиво..
|
||||
std::wstringstream output_;
|
||||
svg_path::oox_serialize(output_, o_Polyline_pt);
|
||||
additional_.push_back(odf_reader::_property(L"custom_path",output_.str()));
|
||||
|
||||
::svg_path::oox_serialize(output_, o_Polyline_pt);
|
||||
additional_.push_back(odf_reader::_property(L"custom_path", output_.str()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -592,9 +600,9 @@ void draw_caption::add_attributes( const xml::attributes_wc_ptr & Attributes )
|
||||
/// draw-connector-attlist
|
||||
void draw_connector_attlist::add_attributes( const xml::attributes_wc_ptr & Attributes )
|
||||
{
|
||||
CP_APPLY_ATTR(L"svg:d", svg_d_);
|
||||
CP_APPLY_ATTR(L"svg:viewBox", svg_viewbox_);
|
||||
CP_APPLY_ATTR(L"draw:type",draw_type_);
|
||||
CP_APPLY_ATTR(L"svg:d", svg_d_);
|
||||
CP_APPLY_ATTR(L"svg:viewBox", svg_viewbox_);
|
||||
CP_APPLY_ATTR(L"draw:type", draw_type_);
|
||||
|
||||
}
|
||||
// draw:connector
|
||||
@ -618,35 +626,37 @@ void draw_connector::reset_svg_path()
|
||||
}
|
||||
else
|
||||
{
|
||||
std::vector<svg_path::_polyline> o_Polyline_pt;
|
||||
std::vector<svg_path::_polyline> o_Polyline_cm;
|
||||
std::vector<::svg_path::_polyline> o_Polyline_pt;
|
||||
std::vector<::svg_path::_polyline> o_Polyline_cm;
|
||||
|
||||
bool res = svg_path::parseSvgD(o_Polyline_cm,draw_connector_attlist_.svg_d_.get(),false);
|
||||
bool res = ::svg_path::parseSvgD(o_Polyline_cm, draw_connector_attlist_.svg_d_.get(), false);
|
||||
|
||||
double x1=common_draw_attlists_.position_.svg_x_.get_value_or(length(0)).get_value_unit(length::emu);
|
||||
double y1=common_draw_attlists_.position_.svg_y_.get_value_or(length(0)).get_value_unit(length::emu);
|
||||
|
||||
BOOST_FOREACH(svg_path::_polyline & poly, o_Polyline_cm)
|
||||
for (size_t ind = 0 ; ind < o_Polyline_cm.size(); ind++)
|
||||
{
|
||||
for (long i=0;i<poly.points.size();i++)
|
||||
::svg_path::_polyline & poly = o_Polyline_cm[ind];
|
||||
|
||||
for (size_t i = 0; i < poly.points.size();i++)
|
||||
{
|
||||
if (poly.points[i].x)
|
||||
{
|
||||
poly.points[i].x = length(poly.points[i].x.get()/1000.,length::cm).get_value_unit(length::emu) - x1;
|
||||
poly.points[i].x = length(poly.points[i].x.get()/1000., length::cm).get_value_unit(length::emu) - x1;
|
||||
}
|
||||
if (poly.points[i].y)
|
||||
{
|
||||
poly.points[i].y = length(poly.points[i].y.get()/1000.,length::cm).get_value_unit(length::emu) - y1;
|
||||
poly.points[i].y = length(poly.points[i].y.get()/1000., length::cm).get_value_unit(length::emu) - y1;
|
||||
}
|
||||
}
|
||||
o_Polyline_pt.push_back(poly);
|
||||
}
|
||||
if (o_Polyline_pt.size()>0)
|
||||
if (o_Polyline_pt.size() > 0)
|
||||
{
|
||||
sub_type_ = 6;
|
||||
//сформируем xml-oox сдесь ... а то придется плодить массивы в drawing .. хоть и не красиво..
|
||||
std::wstringstream output_;
|
||||
svg_path::oox_serialize(output_, o_Polyline_pt);
|
||||
::svg_path::oox_serialize(output_, o_Polyline_pt);
|
||||
additional_.push_back(odf_reader::_property(L"custom_path",output_.str()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -40,8 +40,6 @@
|
||||
#include "datatypes/common_attlists.h"
|
||||
#include "../docx/xlsxconversioncontext.h"
|
||||
|
||||
#include "svg_parser.h"
|
||||
|
||||
namespace cpdoccore
|
||||
{
|
||||
|
||||
|
||||
@ -45,7 +45,6 @@
|
||||
#include <cpdoccore/odf/odf_document.h>
|
||||
|
||||
#include "serialize_elements.h"
|
||||
#include "../docx/xlsx_utils.h"
|
||||
#include "style_graphic_properties.h"
|
||||
|
||||
#include "odfcontext.h"
|
||||
@ -53,6 +52,9 @@
|
||||
#include "datatypes/length.h"
|
||||
#include "datatypes/borderstyle.h"
|
||||
|
||||
#include "../docx/xlsx_utils.h"
|
||||
#include "../docx/oox_drawing.h"
|
||||
|
||||
namespace cpdoccore {
|
||||
|
||||
using namespace odf_types;
|
||||
@ -260,13 +262,13 @@ void draw_enhanced_geometry::docx_convert(oox::docx_conversion_context & Context
|
||||
|
||||
if (draw_enhanced_geometry_attlist_.draw_enhanced_path_)
|
||||
{
|
||||
std::vector<svg_path::_polyline> o_Polyline;
|
||||
std::vector<::svg_path::_polyline> o_Polyline;
|
||||
|
||||
bool res = false;
|
||||
|
||||
try
|
||||
{
|
||||
res = svg_path::parseSvgD(o_Polyline, draw_enhanced_geometry_attlist_.draw_enhanced_path_.get(), true);
|
||||
res = ::svg_path::parseSvgD(o_Polyline, draw_enhanced_geometry_attlist_.draw_enhanced_path_.get(), true);
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
@ -277,7 +279,8 @@ void draw_enhanced_geometry::docx_convert(oox::docx_conversion_context & Context
|
||||
{
|
||||
//сформируем xml-oox сдесь ... а то придется плодить массивы в drawing .. хоть и не красиво..
|
||||
std::wstringstream output_;
|
||||
svg_path::oox_serialize(output_, o_Polyline);
|
||||
|
||||
::svg_path::oox_serialize(output_, o_Polyline);
|
||||
shape->additional_.push_back(odf_reader::_property(L"custom_path", output_.str()));
|
||||
|
||||
set_shape = true;
|
||||
|
||||
@ -53,7 +53,8 @@
|
||||
|
||||
#include "odfcontext.h"
|
||||
#include "calcs_styles.h"
|
||||
#include "svg_parser.h"
|
||||
|
||||
#include "../docx/oox_drawing.h"
|
||||
|
||||
namespace cpdoccore {
|
||||
|
||||
@ -320,13 +321,13 @@ void draw_enhanced_geometry::pptx_convert(oox::pptx_conversion_context & Context
|
||||
|
||||
if (draw_enhanced_geometry_attlist_.draw_enhanced_path_)
|
||||
{
|
||||
std::vector<svg_path::_polyline> o_Polyline;
|
||||
std::vector<::svg_path::_polyline> o_Polyline;
|
||||
|
||||
bool res = false;
|
||||
|
||||
try
|
||||
{
|
||||
res = svg_path::parseSvgD(o_Polyline, draw_enhanced_geometry_attlist_.draw_enhanced_path_.get(), true);
|
||||
res = ::svg_path::parseSvgD(o_Polyline, draw_enhanced_geometry_attlist_.draw_enhanced_path_.get(), true);
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
@ -337,7 +338,7 @@ void draw_enhanced_geometry::pptx_convert(oox::pptx_conversion_context & Context
|
||||
{
|
||||
//сформируем xml-oox сдесь ... а то придется плодить массивы в drawing .. хоть и не красиво..
|
||||
std::wstringstream output_;
|
||||
svg_path::oox_serialize(output_, o_Polyline);
|
||||
::svg_path::oox_serialize(output_, o_Polyline);
|
||||
Context.get_slide_context().set_property(odf_reader::_property(L"custom_path", output_.str()));
|
||||
|
||||
set_shape = true;
|
||||
|
||||
@ -45,15 +45,16 @@
|
||||
#include <cpdoccore/odf/odf_document.h>
|
||||
|
||||
#include "serialize_elements.h"
|
||||
#include "../docx/xlsx_utils.h"
|
||||
#include "style_graphic_properties.h"
|
||||
#include "odfcontext.h"
|
||||
#include "calcs_styles.h"
|
||||
#include "svg_parser.h"
|
||||
|
||||
#include "datatypes/length.h"
|
||||
#include "datatypes/borderstyle.h"
|
||||
|
||||
#include "../docx/xlsx_utils.h"
|
||||
#include "../docx/oox_drawing.h"
|
||||
|
||||
namespace cpdoccore {
|
||||
|
||||
using namespace odf_types;
|
||||
@ -274,13 +275,13 @@ void draw_enhanced_geometry::xlsx_convert(oox::xlsx_conversion_context & Context
|
||||
|
||||
if (draw_enhanced_geometry_attlist_.draw_enhanced_path_)
|
||||
{
|
||||
std::vector<svg_path::_polyline> o_Polyline;
|
||||
std::vector<::svg_path::_polyline> o_Polyline;
|
||||
|
||||
bool res = false;
|
||||
|
||||
try
|
||||
{
|
||||
res = svg_path::parseSvgD(o_Polyline, draw_enhanced_geometry_attlist_.draw_enhanced_path_.get(), true);
|
||||
res = ::svg_path::parseSvgD(o_Polyline, draw_enhanced_geometry_attlist_.draw_enhanced_path_.get(), true);
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
@ -291,7 +292,7 @@ void draw_enhanced_geometry::xlsx_convert(oox::xlsx_conversion_context & Context
|
||||
{
|
||||
//сформируем xml-oox сдесь ... а то придется плодить массивы в drawing .. хоть и не красиво..
|
||||
std::wstringstream output_;
|
||||
svg_path::oox_serialize(output_, o_Polyline);
|
||||
::svg_path::oox_serialize(output_, o_Polyline);
|
||||
Context.get_drawing_context().set_property(odf_reader::_property(L"custom_path", output_.str()));
|
||||
|
||||
if (draw_enhanced_geometry_attlist_.drawooo_sub_view_size_)
|
||||
|
||||
@ -99,7 +99,7 @@ void math_semantics::add_child_element( xml::sax * Reader, const std::wstring &
|
||||
|
||||
void math_semantics::oox_convert(oox::math_context & Context)
|
||||
{
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
office_math_element* math_element = dynamic_cast<office_math_element*>(content_[i].get());
|
||||
math_element->oox_convert(Context);
|
||||
|
||||
@ -193,7 +193,7 @@ void math_msqrt::oox_convert(oox::math_context & Context)
|
||||
strm << L"<m:deg/>";
|
||||
|
||||
strm << L"<m:e>";
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
office_math_element* math_element = dynamic_cast<office_math_element*>(content_[i].get());
|
||||
math_element->oox_convert(Context);
|
||||
@ -297,7 +297,7 @@ void math_mstyle::oox_convert(oox::math_context & Context)
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
office_math_element* math_element = dynamic_cast<office_math_element*>(content_[i].get());
|
||||
math_element->oox_convert(Context);
|
||||
|
||||
@ -64,7 +64,7 @@ void math_mtable::oox_convert(oox::math_context & Context)
|
||||
std::wostream & strm = Context.output_stream();
|
||||
|
||||
strm << L"<m:m>";
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
office_math_element* math_element = dynamic_cast<office_math_element*>(content_[i].get());
|
||||
math_element->oox_convert(Context);
|
||||
@ -92,7 +92,7 @@ void math_mtr::oox_convert(oox::math_context & Context)
|
||||
std::wostream & strm = Context.output_stream();
|
||||
|
||||
strm << L"<m:mr>";
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
//strm << L"<m:e>"; // EqArray записался в числитель вместо знаменателя.docx - дублирование
|
||||
office_math_element* math_element = dynamic_cast<office_math_element*>(content_[i].get());
|
||||
@ -142,7 +142,7 @@ void math_mtd::oox_convert(oox::math_context & Context)
|
||||
std::wostream & strm = Context.output_stream();
|
||||
|
||||
strm << L"<m:e>";
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
office_math_element* math_element = dynamic_cast<office_math_element*>(content_[i].get());
|
||||
math_element->oox_convert(Context);
|
||||
|
||||
@ -187,8 +187,10 @@ void odf_document::Impl::parse_fonts()
|
||||
break;
|
||||
}
|
||||
|
||||
BOOST_FOREACH(office_element_ptr & elm, fontFaceDecls->style_font_face_)
|
||||
{
|
||||
for (size_t i = 0; i < fontFaceDecls->style_font_face_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = fontFaceDecls->style_font_face_[i];
|
||||
|
||||
style_font_face* fontFace = dynamic_cast<style_font_face*>( elm.get() );
|
||||
if (!fontFace)
|
||||
{
|
||||
@ -243,8 +245,10 @@ void odf_document::Impl::parse_manifests()
|
||||
if (!document)return;
|
||||
|
||||
int res =-1;
|
||||
BOOST_FOREACH(office_element_ptr & elm, document->manifests_)
|
||||
{
|
||||
for (size_t i = 0; i < document->manifests_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = document->manifests_[i];
|
||||
|
||||
manifest_entry * entry = dynamic_cast<manifest_entry *>(elm.get());
|
||||
if (!entry)continue;
|
||||
|
||||
@ -281,15 +285,18 @@ void odf_document::Impl::parse_settings()
|
||||
office_settings * settings = dynamic_cast<office_settings*>(document->office_settings_.get());
|
||||
if (!settings) return;
|
||||
|
||||
BOOST_FOREACH(office_element_ptr & elm, settings->content_)
|
||||
{
|
||||
for (size_t i = 0; i < settings->content_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = settings->content_[i];
|
||||
|
||||
settings_config_item_set * item_set = dynamic_cast<settings_config_item_set *>(elm.get());
|
||||
if (!item_set)continue;
|
||||
|
||||
if (item_set->config_name_ == L"ooo:configuration-settings")
|
||||
{
|
||||
BOOST_FOREACH(office_element_ptr & elm_sett, item_set->content_)
|
||||
{
|
||||
for (size_t j = 0; j < item_set->content_.size(); j++)
|
||||
{
|
||||
office_element_ptr & elm_sett = item_set->content_[j];
|
||||
settings_config_item * sett = dynamic_cast<settings_config_item *>(elm_sett.get());
|
||||
if (!sett)continue;
|
||||
|
||||
@ -298,8 +305,10 @@ void odf_document::Impl::parse_settings()
|
||||
}
|
||||
else if (item_set->config_name_ == L"ooo:view-settings")
|
||||
{
|
||||
BOOST_FOREACH(office_element_ptr & elm_sett, item_set->content_)
|
||||
{
|
||||
for (size_t j = 0; j < item_set->content_.size(); j++)
|
||||
{
|
||||
office_element_ptr & elm_sett = item_set->content_[j];
|
||||
|
||||
settings_config_item * sett = dynamic_cast<settings_config_item *>(elm_sett.get());
|
||||
if (sett)
|
||||
context_->Settings().add_view(sett->config_name_, sett->content_);
|
||||
@ -308,13 +317,13 @@ void odf_document::Impl::parse_settings()
|
||||
settings_config_item_map_indexed *map_sett = dynamic_cast<settings_config_item_map_indexed *>(elm_sett.get());
|
||||
if ((map_sett) && (map_sett->config_name_ == L"Views"))
|
||||
{
|
||||
for (int i = 0; i < map_sett->content_.size(); i++)
|
||||
for (size_t i = 0; i < map_sett->content_.size(); i++)
|
||||
{
|
||||
settings_config_item_map_entry *entry = dynamic_cast<settings_config_item_map_entry *>(map_sett->content_[i].get());
|
||||
if (!entry) continue;
|
||||
|
||||
context_->Settings().start_view();
|
||||
for (int j = 0; j < entry->content_.size(); j++)
|
||||
for (size_t j = 0; j < entry->content_.size(); j++)
|
||||
{
|
||||
settings_config_item * sett = dynamic_cast<settings_config_item *>(entry->content_[j].get());
|
||||
if (sett)
|
||||
@ -323,14 +332,14 @@ void odf_document::Impl::parse_settings()
|
||||
settings_config_item_map_named *map_v = dynamic_cast<settings_config_item_map_named *>(entry->content_[j].get());
|
||||
if (map_v)
|
||||
{
|
||||
for (int n = 0; n < map_v->content_.size(); n++)
|
||||
for (size_t n = 0; n < map_v->content_.size(); n++)
|
||||
{
|
||||
settings_config_item_map_entry *entry_v = dynamic_cast<settings_config_item_map_entry *>(map_v->content_[n].get());
|
||||
if (!entry_v) continue;
|
||||
|
||||
context_->Settings().start_table_view(entry_v->config_name_);
|
||||
|
||||
for (int k = 0; k < entry_v->content_.size(); k++)
|
||||
for (size_t k = 0; k < entry_v->content_.size(); k++)
|
||||
{
|
||||
sett = dynamic_cast<settings_config_item *>(entry_v->content_[k].get());
|
||||
if (sett)
|
||||
@ -378,9 +387,11 @@ void odf_document::Impl::parse_styles()
|
||||
}
|
||||
|
||||
// parse page layout
|
||||
BOOST_FOREACH(office_element_ptr & elm, automaticStyles->style_page_layout_)
|
||||
{
|
||||
style_page_layout * pageLayout = dynamic_cast<style_page_layout *>(elm.get());
|
||||
for (size_t i = 0; i < automaticStyles->style_page_layout_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = automaticStyles->style_page_layout_[i];
|
||||
|
||||
style_page_layout * pageLayout = dynamic_cast<style_page_layout *>(elm.get());
|
||||
if (!pageLayout)
|
||||
{
|
||||
_CP_LOG << L"[warning] error reading page layout\n";
|
||||
@ -390,9 +401,11 @@ void odf_document::Impl::parse_styles()
|
||||
context_->pageLayoutContainer().add_page_layout(pageLayout);
|
||||
} // end parse page layout
|
||||
|
||||
BOOST_FOREACH(office_element_ptr & elm, automaticStyles->styles_.style_style_)
|
||||
{
|
||||
style * styleInst = dynamic_cast<style*>(elm.get());
|
||||
for (size_t i = 0; i < automaticStyles->styles_.style_style_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = automaticStyles->styles_.style_style_[i];
|
||||
|
||||
style * styleInst = dynamic_cast<style*>(elm.get());
|
||||
if (!styleInst)
|
||||
{
|
||||
_CP_LOG << L"[warning] error reading style\n";
|
||||
@ -412,9 +425,11 @@ void odf_document::Impl::parse_styles()
|
||||
);
|
||||
}
|
||||
// list styles
|
||||
BOOST_FOREACH(office_element_ptr & elm, automaticStyles->styles_.text_list_style_)
|
||||
{
|
||||
text_list_style * listStyle = dynamic_cast<text_list_style *>(elm.get());
|
||||
for (size_t i = 0; i < automaticStyles->styles_.text_list_style_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = automaticStyles->styles_.text_list_style_[i];
|
||||
|
||||
text_list_style * listStyle = dynamic_cast<text_list_style *>(elm.get());
|
||||
if (!listStyle)
|
||||
{
|
||||
_CP_LOG << L"[warning] error list style\n";
|
||||
@ -436,9 +451,11 @@ void odf_document::Impl::parse_styles()
|
||||
break;
|
||||
}
|
||||
|
||||
BOOST_FOREACH(office_element_ptr & elm, masterStyles->style_master_page_)
|
||||
{
|
||||
style_master_page * masterPage = dynamic_cast<style_master_page *>(elm.get());
|
||||
for (size_t i = 0; i < masterStyles->style_master_page_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = masterStyles->style_master_page_[i];
|
||||
|
||||
style_master_page * masterPage = dynamic_cast<style_master_page *>(elm.get());
|
||||
if (!masterPage)
|
||||
{
|
||||
_CP_LOG << L"[warning] error reading master page\n";
|
||||
@ -464,9 +481,11 @@ void odf_document::Impl::parse_styles()
|
||||
}
|
||||
|
||||
// default styles
|
||||
BOOST_FOREACH(office_element_ptr & elm, docStyles->style_default_style_)
|
||||
{
|
||||
default_style * styleInst = dynamic_cast<default_style *>(elm.get());
|
||||
for (size_t i = 0; i < docStyles->style_default_style_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = docStyles->style_default_style_[i];
|
||||
|
||||
default_style * styleInst = dynamic_cast<default_style *>(elm.get());
|
||||
if (!styleInst)
|
||||
{
|
||||
_CP_LOG << L"[warning] error reading default style\n";
|
||||
@ -483,9 +502,11 @@ void odf_document::Impl::parse_styles()
|
||||
L"",
|
||||
L"");
|
||||
}
|
||||
BOOST_FOREACH(office_element_ptr & elm, docStyles->style_presentation_page_layout_)
|
||||
{
|
||||
style_presentation_page_layout * pageLayout = dynamic_cast<style_presentation_page_layout *>(elm.get());
|
||||
for (size_t i = 0; i < docStyles->style_presentation_page_layout_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = docStyles->style_presentation_page_layout_[i];
|
||||
|
||||
style_presentation_page_layout * pageLayout = dynamic_cast<style_presentation_page_layout *>(elm.get());
|
||||
|
||||
if (!pageLayout)
|
||||
continue;
|
||||
@ -494,9 +515,11 @@ void odf_document::Impl::parse_styles()
|
||||
}
|
||||
|
||||
// common styles
|
||||
BOOST_FOREACH(office_element_ptr & elm, docStyles->styles_.style_style_)
|
||||
{
|
||||
style * styleInst = dynamic_cast<style*>(elm.get());
|
||||
for (size_t i = 0; i < docStyles->styles_.style_style_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = docStyles->styles_.style_style_[i];
|
||||
|
||||
style * styleInst = dynamic_cast<style*>(elm.get());
|
||||
if (!styleInst)
|
||||
{
|
||||
_CP_LOG << L"[warning] error reading style\n";
|
||||
@ -519,8 +542,10 @@ void odf_document::Impl::parse_styles()
|
||||
}
|
||||
|
||||
// list styles
|
||||
BOOST_FOREACH(office_element_ptr & elm, docStyles->styles_.text_list_style_)
|
||||
{
|
||||
for (size_t i = 0; i < docStyles->styles_.text_list_style_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = docStyles->styles_.text_list_style_[i];
|
||||
|
||||
text_list_style * listStyle = dynamic_cast<text_list_style *>(elm.get());
|
||||
if (!listStyle)
|
||||
{
|
||||
@ -531,9 +556,11 @@ void odf_document::Impl::parse_styles()
|
||||
context_->listStyleContainer().add_list_style(listStyle);
|
||||
}
|
||||
|
||||
BOOST_FOREACH(const office_element_ptr & elm, docStyles->text_notes_configuration_)
|
||||
{
|
||||
const text_notes_configuration * conf = dynamic_cast<const text_notes_configuration *>(elm.get());
|
||||
for (size_t i = 0; i < docStyles->text_notes_configuration_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = docStyles->text_notes_configuration_[i];
|
||||
|
||||
const text_notes_configuration * conf = dynamic_cast<const text_notes_configuration *>(elm.get());
|
||||
if (!conf)
|
||||
continue;
|
||||
|
||||
@ -542,53 +569,65 @@ void odf_document::Impl::parse_styles()
|
||||
|
||||
}
|
||||
|
||||
BOOST_FOREACH(const office_element_ptr & elm, docStyles->styles_.number_styles_)
|
||||
{
|
||||
const number_style_base * style = dynamic_cast<const number_style_base *>(elm.get());
|
||||
for (size_t i = 0; i < docStyles->styles_.number_styles_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = docStyles->styles_.number_styles_[i];
|
||||
|
||||
const number_style_base * style = dynamic_cast<const number_style_base *>(elm.get());
|
||||
|
||||
if (!style)
|
||||
continue;
|
||||
|
||||
context_->numberStyles().add(style->get_style_name(), elm);
|
||||
}
|
||||
BOOST_FOREACH(const office_element_ptr & elm, docStyles->draw_styles_.draw_gradient_)
|
||||
{
|
||||
draw_gradient * style = dynamic_cast<draw_gradient *>(elm.get());
|
||||
for (size_t i = 0; i < docStyles->draw_styles_.draw_gradient_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = docStyles->draw_styles_.draw_gradient_[i];
|
||||
|
||||
draw_gradient * style = dynamic_cast<draw_gradient *>(elm.get());
|
||||
|
||||
if (!style)
|
||||
continue;
|
||||
|
||||
context_->drawStyles().add(L"gradient:" + style->get_style_name(), elm);
|
||||
}
|
||||
BOOST_FOREACH(const office_element_ptr & elm, docStyles->draw_styles_.draw_fill_image_)
|
||||
{
|
||||
draw_fill_image * style = dynamic_cast<draw_fill_image *>(elm.get());
|
||||
for (size_t i = 0; i < docStyles->draw_styles_.draw_fill_image_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = docStyles->draw_styles_.draw_fill_image_[i];
|
||||
|
||||
draw_fill_image * style = dynamic_cast<draw_fill_image *>(elm.get());
|
||||
|
||||
if (!style)
|
||||
continue;
|
||||
|
||||
context_->drawStyles().add(L"bitmap:" + style->get_style_name(), elm);
|
||||
}
|
||||
BOOST_FOREACH(const office_element_ptr & elm, docStyles->draw_styles_.draw_opacity_)
|
||||
{
|
||||
draw_opacity * style = dynamic_cast<draw_opacity *>(elm.get());
|
||||
for (size_t i = 0; i < docStyles->draw_styles_.draw_opacity_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = docStyles->draw_styles_.draw_opacity_[i];
|
||||
|
||||
draw_opacity * style = dynamic_cast<draw_opacity *>(elm.get());
|
||||
|
||||
if (!style)
|
||||
continue;
|
||||
|
||||
context_->drawStyles().add(L"opacity:" + style->get_style_name(), elm);
|
||||
}
|
||||
BOOST_FOREACH(const office_element_ptr & elm, docStyles->draw_styles_.draw_hatch_)
|
||||
{
|
||||
draw_hatch * style = dynamic_cast<draw_hatch *>(elm.get());
|
||||
for (size_t i = 0; i < docStyles->draw_styles_.draw_hatch_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = docStyles->draw_styles_.draw_hatch_[i];
|
||||
|
||||
draw_hatch * style = dynamic_cast<draw_hatch *>(elm.get());
|
||||
|
||||
if (!style)
|
||||
continue;
|
||||
|
||||
context_->drawStyles().add(L"hatch:" + style->get_style_name(), elm);
|
||||
}
|
||||
BOOST_FOREACH(const office_element_ptr & elm, docStyles->templates_.table_templates_)
|
||||
{
|
||||
for (size_t i = 0; i < docStyles->templates_.table_templates_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = docStyles->templates_.table_templates_[i];
|
||||
|
||||
table_table_template * style = dynamic_cast<table_table_template *>(elm.get());
|
||||
|
||||
if (!style)
|
||||
@ -626,9 +665,11 @@ void odf_document::Impl::parse_styles()
|
||||
break;
|
||||
}
|
||||
|
||||
BOOST_FOREACH(office_element_ptr & elm, automaticStyles->styles_.style_style_)
|
||||
{
|
||||
style * styleInst = dynamic_cast<style*>(elm.get());
|
||||
for (size_t i = 0; i < automaticStyles->styles_.style_style_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = automaticStyles->styles_.style_style_[i];
|
||||
|
||||
style * styleInst = dynamic_cast<style*>(elm.get());
|
||||
if (!styleInst)
|
||||
{
|
||||
_CP_LOG << L"[warning] error reading style\n";
|
||||
@ -650,9 +691,11 @@ void odf_document::Impl::parse_styles()
|
||||
);
|
||||
}
|
||||
|
||||
BOOST_FOREACH(office_element_ptr & elm, automaticStyles->styles_.text_list_style_)
|
||||
{
|
||||
text_list_style * listStyle = dynamic_cast<text_list_style *>(elm.get());
|
||||
for (size_t i = 0; i < automaticStyles->styles_.text_list_style_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = automaticStyles->styles_.text_list_style_[i];
|
||||
|
||||
text_list_style * listStyle = dynamic_cast<text_list_style *>(elm.get());
|
||||
if (!listStyle)
|
||||
{
|
||||
_CP_LOG << L"[warning] error reading list style\n";
|
||||
@ -662,9 +705,11 @@ void odf_document::Impl::parse_styles()
|
||||
context_->listStyleContainer().add_list_style(listStyle);
|
||||
}
|
||||
|
||||
BOOST_FOREACH(const office_element_ptr & elm, automaticStyles->styles_.number_styles_)
|
||||
{
|
||||
const number_style_base * style = dynamic_cast<const number_style_base *>(elm.get());
|
||||
for (size_t i = 0; i < automaticStyles->styles_.number_styles_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = automaticStyles->styles_.number_styles_[i];
|
||||
|
||||
const number_style_base * style = dynamic_cast<const number_style_base *>(elm.get());
|
||||
|
||||
if (!style) continue;
|
||||
|
||||
|
||||
@ -223,8 +223,9 @@ void styles_container::add_master_page_name(const std::wstring & StyleName, cons
|
||||
std::pair<int,std::wstring> presentation_layouts_instance::add_or_find(const std::wstring & layout_name,const std::wstring & master_name)
|
||||
{
|
||||
bool find = false;
|
||||
int index =0;
|
||||
for (index=0;index<content.size();index++)
|
||||
size_t index =0;
|
||||
|
||||
for (index = 0; index < content.size(); index++)
|
||||
{
|
||||
if (content[index].layout_name == layout_name && content[index].master_name == master_name)
|
||||
{
|
||||
@ -250,8 +251,8 @@ std::pair<int,std::wstring> presentation_layouts_instance::add_or_find(const std
|
||||
std::pair<int,std::wstring> presentation_masters_instance::add_or_find(const std::wstring & master_name)
|
||||
{
|
||||
bool find = false;
|
||||
int index =0;
|
||||
for (index=0;index<content.size();index++)
|
||||
size_t index =0;
|
||||
for (index = 0; index < content.size(); index++)
|
||||
{
|
||||
if (content[index].master_name == master_name)
|
||||
{
|
||||
@ -276,8 +277,8 @@ std::pair<int,std::wstring> presentation_masters_instance::add_or_find(const std
|
||||
void presentation_masters_instance::add_layout_to(const std::wstring & master_name, presentation_layouts_instance::_layout & layout)
|
||||
{
|
||||
bool find = false;
|
||||
int index =0;
|
||||
for (index=0;index<content.size();index++)
|
||||
size_t index = 0;
|
||||
for (index = 0; index < content.size(); index++)
|
||||
{
|
||||
if (content[index].master_name == master_name)
|
||||
{
|
||||
|
||||
@ -41,7 +41,9 @@
|
||||
#include <cpdoccore/xml/attributes.h>
|
||||
|
||||
#include <cpdoccore/odf/odf_document.h>
|
||||
|
||||
#include "odfcontext.h"
|
||||
#include "draw_common.h"
|
||||
|
||||
namespace cpdoccore {
|
||||
|
||||
@ -111,14 +113,29 @@ void office_body::docx_convert(oox::docx_conversion_context & Context)
|
||||
Context.add_page_properties(L""); //
|
||||
Context.add_page_properties(L"");
|
||||
}
|
||||
//backcolor (for all pages)
|
||||
//background (for all pages)
|
||||
if (page_layout_instance * firtsPageLayout = Context.root()->odf_context().pageLayoutContainer().page_layout_by_name(Context.get_page_properties()))
|
||||
{
|
||||
if (style_page_layout_properties * prop = firtsPageLayout->properties())
|
||||
{
|
||||
if (prop->docx_back_serialize(Context.output_stream(), Context))
|
||||
oox::_oox_fill fill;
|
||||
|
||||
Compute_GraphicFill(prop->style_page_layout_properties_attlist_.common_draw_fill_attlist_,
|
||||
prop->style_page_layout_properties_elements_.style_background_image_,
|
||||
Context.root()->odf_context().drawStyles(), fill);
|
||||
|
||||
if (prop->style_page_layout_properties_attlist_.common_background_color_attlist_.fo_background_color_ || fill.type != 0)
|
||||
{
|
||||
Context.set_settings_property(odf_reader::_property(L"displayBackgroundShape",true));
|
||||
if ((fill.bitmap) && (fill.bitmap->rId.empty()))
|
||||
{
|
||||
std::wstring href = fill.bitmap->xlink_href_;
|
||||
fill.bitmap->rId = Context.add_mediaitem(href, oox::typeImage, fill.bitmap->isInternal, href);
|
||||
}
|
||||
int id = Context.get_drawing_context().get_current_shape_id();
|
||||
if (prop->docx_background_serialize(Context.output_stream(), Context, fill, id))
|
||||
{
|
||||
Context.set_settings_property(odf_reader::_property(L"displayBackgroundShape", true));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -57,7 +57,7 @@ class document_context;
|
||||
class office_element;
|
||||
typedef shared_ptr<office_element>::Type office_element_ptr;
|
||||
typedef weak_ptr<office_element>::Type office_element_weak_ptr;
|
||||
typedef std::vector<office_element_ptr> office_element_ptr_array;
|
||||
typedef std::vector<office_element_ptr> office_element_ptr_array;
|
||||
|
||||
class office_element : public xml::element<wchar_t>,
|
||||
public common::read_doc_element,
|
||||
|
||||
@ -73,11 +73,11 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
_CP_OPT(odf_types::length_or_percent) fo_min_width_;
|
||||
_CP_OPT(odf_types::length_or_percent) fo_min_height_;
|
||||
_CP_OPT(odf_types::length_or_percent) fo_min_width_;
|
||||
_CP_OPT(odf_types::length_or_percent) fo_min_height_;
|
||||
|
||||
_CP_OPT(odf_types::length_or_percent) fo_max_width_;
|
||||
_CP_OPT(odf_types::length_or_percent) fo_max_height_;
|
||||
_CP_OPT(odf_types::length_or_percent) fo_max_width_;
|
||||
_CP_OPT(odf_types::length_or_percent) fo_max_height_;
|
||||
|
||||
///////////////////////////////
|
||||
_CP_OPT(odf_types::color) svg_stroke_color_;
|
||||
|
||||
@ -98,17 +98,17 @@ private:
|
||||
virtual void add_text(const std::wstring & Text);
|
||||
|
||||
private:
|
||||
odf_types::length style_position_;
|
||||
_CP_OPT(odf_types::style_type) style_type_;
|
||||
_CP_OPT(wchar_t) style_char_;
|
||||
odf_types::length style_position_;
|
||||
_CP_OPT(odf_types::style_type) style_type_;
|
||||
_CP_OPT(wchar_t) style_char_;
|
||||
|
||||
_CP_OPT(odf_types::line_type) style_leader_type_;
|
||||
_CP_OPT(odf_types::line_style) style_leader_style_;
|
||||
_CP_OPT(odf_types::line_width) style_leader_width_;
|
||||
_CP_OPT(odf_types::style_leader_color) style_leader_color_;
|
||||
_CP_OPT(odf_types::line_type) style_leader_type_;
|
||||
_CP_OPT(odf_types::line_style) style_leader_style_;
|
||||
_CP_OPT(odf_types::line_width) style_leader_width_;
|
||||
_CP_OPT(odf_types::style_leader_color) style_leader_color_;
|
||||
|
||||
_CP_OPT( std::wstring ) style_leader_text_;
|
||||
_CP_OPT( odf_types::style_ref ) style_leader_text_style_;
|
||||
_CP_OPT( std::wstring ) style_leader_text_;
|
||||
_CP_OPT( odf_types::style_ref ) style_leader_text_style_;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -54,7 +54,6 @@
|
||||
|
||||
#include "serialize_elements.h"
|
||||
#include "odfcontext.h"
|
||||
|
||||
#include "draw_common.h"
|
||||
|
||||
namespace cpdoccore {
|
||||
@ -904,12 +903,12 @@ void style_page_layout::add_child_element( xml::sax * Reader, const std::wstring
|
||||
// style-page-layout-properties-attlist
|
||||
void style_page_layout_properties_attlist::add_attributes( const xml::attributes_wc_ptr & Attributes )
|
||||
{
|
||||
CP_APPLY_ATTR(L"fo:page-width", fo_page_width_);
|
||||
CP_APPLY_ATTR(L"fo:page-height", fo_page_height_);
|
||||
CP_APPLY_ATTR(L"fo:page-width", fo_page_width_);
|
||||
CP_APPLY_ATTR(L"fo:page-height", fo_page_height_);
|
||||
common_num_format_attlist_.add_attributes(Attributes);
|
||||
common_num_format_prefix_suffix_attlist_.add_attributes(Attributes);
|
||||
CP_APPLY_ATTR(L"style:paper-tray-name", style_paper_tray_name_);
|
||||
CP_APPLY_ATTR(L"style:print-orientation", style_print_orientation_);
|
||||
CP_APPLY_ATTR(L"style:paper-tray-name", style_paper_tray_name_);
|
||||
CP_APPLY_ATTR(L"style:print-orientation", style_print_orientation_);
|
||||
|
||||
common_horizontal_margin_attlist_.add_attributes(Attributes);
|
||||
common_vertical_margin_attlist_.add_attributes(Attributes);
|
||||
@ -919,7 +918,8 @@ void style_page_layout_properties_attlist::add_attributes( const xml::attributes
|
||||
common_padding_attlist_.add_attributes(Attributes);
|
||||
common_shadow_attlist_.add_attributes(Attributes);
|
||||
common_background_color_attlist_.add_attributes(Attributes);
|
||||
|
||||
common_draw_fill_attlist_.add_attributes(Attributes);
|
||||
|
||||
CP_APPLY_ATTR(L"style:register-truth-ref-style-name", style_register_truth_ref_style_name_);
|
||||
CP_APPLY_ATTR(L"style:print", style_print_);
|
||||
CP_APPLY_ATTR(L"style:print-page-order", style_print_page_order_);
|
||||
@ -1260,18 +1260,26 @@ void style_page_layout_properties::add_child_element( xml::sax * Reader, const s
|
||||
{
|
||||
style_page_layout_properties_elements_.add_child_element(Reader, Ns, Name, getContext());
|
||||
}
|
||||
bool style_page_layout_properties::docx_back_serialize(std::wostream & strm, oox::docx_conversion_context & Context)
|
||||
{
|
||||
if (!style_page_layout_properties_attlist_.common_background_color_attlist_.fo_background_color_)return false;
|
||||
|
||||
if (style_page_layout_properties_attlist_.common_background_color_attlist_.fo_background_color_->get_type() == background_color::Transparent) return true;
|
||||
bool style_page_layout_properties::docx_background_serialize(std::wostream & strm, oox::docx_conversion_context & Context, oox::_oox_fill & fill, int id)
|
||||
{
|
||||
if (style_page_layout_properties_attlist_.common_background_color_attlist_.fo_background_color_ &&
|
||||
style_page_layout_properties_attlist_.common_background_color_attlist_.fo_background_color_->get_type() == background_color::Transparent)
|
||||
return true; //??
|
||||
//прозрачный фон
|
||||
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"w:background")
|
||||
{
|
||||
std::wstring color = style_page_layout_properties_attlist_.common_background_color_attlist_.fo_background_color_->get_color().get_hex_value();
|
||||
CP_XML_ATTR(L"w:color",color);
|
||||
std::wstring color = L"ffffff";
|
||||
|
||||
if (style_page_layout_properties_attlist_.common_background_color_attlist_.fo_background_color_)
|
||||
color = style_page_layout_properties_attlist_.common_background_color_attlist_.fo_background_color_->get_color().get_hex_value();
|
||||
|
||||
CP_XML_ATTR(L"w:color", color);
|
||||
|
||||
oox::vml_serialize_background(CP_XML_STREAM(), fill, color, id);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@ -1556,7 +1564,7 @@ void header_footer_impl::docx_convert(oox::docx_conversion_context & Context)
|
||||
if (content_.header_footer_content_.tracked_changes_)
|
||||
content_.header_footer_content_.tracked_changes_->docx_convert(Context);
|
||||
|
||||
for (int i=0; i < content_.header_footer_content_.content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.header_footer_content_.content_.size(); i++)
|
||||
{
|
||||
content_.header_footer_content_.content_[i]->docx_convert(Context);
|
||||
}
|
||||
|
||||
@ -892,54 +892,26 @@ public:
|
||||
odf_types::common_padding_attlist common_padding_attlist_;
|
||||
odf_types::common_shadow_attlist common_shadow_attlist_;
|
||||
|
||||
// 15.2.10
|
||||
odf_types::common_background_color_attlist common_background_color_attlist_;
|
||||
// 15.2.12
|
||||
_CP_OPT(odf_types::style_ref) style_register_truth_ref_style_name_;
|
||||
// 15.2.13 TODO
|
||||
_CP_OPT(std::wstring) style_print_;
|
||||
|
||||
// 15.2.14
|
||||
_CP_OPT(odf_types::direction) style_print_page_order_;
|
||||
|
||||
// 15.2.15 TODO
|
||||
_CP_OPT(std::wstring) style_first_page_number_;
|
||||
|
||||
// 15.2.16
|
||||
_CP_OPT(odf_types::percent) style_scale_to_;
|
||||
_CP_OPT(unsigned int) style_scale_to_pages_;
|
||||
|
||||
// 15.2.17
|
||||
_CP_OPT(odf_types::table_centering) style_table_centering_;
|
||||
// 15.2.18
|
||||
_CP_OPT(odf_types::length) style_footnote_max_height_;
|
||||
|
||||
// 15.2.19
|
||||
odf_types::common_writing_mode_attlist common_writing_mode_attlist_;
|
||||
|
||||
// 15.2.21
|
||||
_CP_OPT(odf_types::layout_grid_mode) style_layout_grid_mode_;
|
||||
|
||||
// 15.2.22
|
||||
_CP_OPT(odf_types::length) style_layout_grid_base_height_;
|
||||
|
||||
// 15.2.23
|
||||
_CP_OPT(odf_types::length) style_layout_grid_ruby_height_;
|
||||
|
||||
// 15.2.24
|
||||
_CP_OPT(unsigned int) style_layout_grid_lines_;
|
||||
|
||||
// 15.2.25
|
||||
_CP_OPT(odf_types::color) style_layout_grid_color_;
|
||||
|
||||
// 15.2.26
|
||||
_CP_OPT(bool) style_layout_grid_ruby_below_;
|
||||
|
||||
// 15.2.27
|
||||
_CP_OPT(bool) style_layout_grid_print_;
|
||||
|
||||
// 15.2.28
|
||||
_CP_OPT(bool) style_layout_grid_display_;
|
||||
odf_types::common_background_color_attlist common_background_color_attlist_;
|
||||
odf_types::common_draw_fill_attlist common_draw_fill_attlist_;
|
||||
|
||||
_CP_OPT(odf_types::style_ref) style_register_truth_ref_style_name_;
|
||||
_CP_OPT(std::wstring) style_print_;
|
||||
_CP_OPT(odf_types::direction) style_print_page_order_;
|
||||
_CP_OPT(std::wstring) style_first_page_number_;
|
||||
_CP_OPT(odf_types::percent) style_scale_to_;
|
||||
_CP_OPT(unsigned int) style_scale_to_pages_;
|
||||
_CP_OPT(odf_types::table_centering) style_table_centering_;
|
||||
_CP_OPT(odf_types::length) style_footnote_max_height_;
|
||||
odf_types::common_writing_mode_attlist common_writing_mode_attlist_;
|
||||
_CP_OPT(odf_types::layout_grid_mode) style_layout_grid_mode_;
|
||||
_CP_OPT(odf_types::length) style_layout_grid_base_height_;
|
||||
_CP_OPT(odf_types::length) style_layout_grid_ruby_height_;
|
||||
_CP_OPT(unsigned int) style_layout_grid_lines_;
|
||||
_CP_OPT(odf_types::color) style_layout_grid_color_;
|
||||
_CP_OPT(bool) style_layout_grid_ruby_below_;
|
||||
_CP_OPT(bool) style_layout_grid_print_;
|
||||
_CP_OPT(bool) style_layout_grid_display_;
|
||||
|
||||
};
|
||||
|
||||
@ -992,7 +964,7 @@ public:
|
||||
|
||||
};
|
||||
|
||||
// style:page-layout-properties
|
||||
// style:page-layout-properties
|
||||
class style_page_layout_properties : public office_element_impl<style_page_layout_properties>
|
||||
{
|
||||
public:
|
||||
@ -1005,7 +977,7 @@ public:
|
||||
void docx_convert_serialize(std::wostream & strm, oox::docx_conversion_context & Context);
|
||||
void pptx_convert(oox::pptx_conversion_context & Context);
|
||||
|
||||
bool docx_back_serialize(std::wostream & strm, oox::docx_conversion_context & Context);
|
||||
bool docx_background_serialize(std::wostream & strm, oox::docx_conversion_context & Context, oox::_oox_fill & fill, int id);
|
||||
|
||||
style_page_layout_properties() { }
|
||||
|
||||
@ -1020,7 +992,7 @@ private:
|
||||
|
||||
CP_REGISTER_OFFICE_ELEMENT2(style_page_layout_properties);
|
||||
|
||||
// text:notes-configuration
|
||||
// text:notes-configuration
|
||||
class text_notes_configuration : public office_element_impl<text_notes_configuration>
|
||||
{
|
||||
public:
|
||||
|
||||
@ -35,8 +35,6 @@
|
||||
#include <boost/algorithm/string.hpp>
|
||||
#include <boost/lexical_cast.hpp>
|
||||
|
||||
namespace cpdoccore
|
||||
{
|
||||
namespace svg_path
|
||||
{
|
||||
void skipSpaces(int& io_rPos, const std::wstring& rStr, const int nLen)
|
||||
@ -69,7 +67,7 @@ namespace svg_path
|
||||
return isOnNumberChar(rStr[nPos],bSignAllowed);
|
||||
}
|
||||
|
||||
bool getDoubleChar(double& o_fRetval,int & io_rPos, const std::wstring& rStr)
|
||||
bool getDoubleChar(double& o_fRetval,int & io_rPos, const std::wstring& rStr)
|
||||
{
|
||||
wchar_t aChar( rStr[io_rPos] );
|
||||
std::wstring sNumberString;
|
||||
@ -121,7 +119,7 @@ namespace svg_path
|
||||
return false;
|
||||
}
|
||||
|
||||
bool importDoubleAndSpaces( double& o_fRetval, int& io_rPos, const std::wstring& rStr, const int nLen )
|
||||
bool importDoubleAndSpaces( double& o_fRetval, int& io_rPos, const std::wstring& rStr, const int nLen )
|
||||
{
|
||||
if( !getDoubleChar(o_fRetval, io_rPos, rStr) )
|
||||
return false;
|
||||
@ -131,7 +129,7 @@ namespace svg_path
|
||||
return true;
|
||||
}
|
||||
|
||||
bool importFlagAndSpaces(int& o_nRetval, int& io_rPos, const std::wstring& rStr, const int nLen)
|
||||
bool importFlagAndSpaces(int& o_nRetval, int& io_rPos, const std::wstring& rStr, const int nLen)
|
||||
{
|
||||
wchar_t aChar( rStr[io_rPos] );
|
||||
|
||||
@ -181,7 +179,6 @@ namespace svg_path
|
||||
return bUseRelativeCoordinates ? cLowerCaseCommand : cUpperCaseCommand;
|
||||
}
|
||||
|
||||
|
||||
bool parseSvgD(std::vector<_polyline> & Polyline, const std::wstring & rSvgDStatement, bool bWrongPositionAfterZ)
|
||||
{
|
||||
Polyline.clear();
|
||||
@ -808,6 +805,153 @@ namespace svg_path
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
bool parseVml(std::vector<_polyline> & Polyline, const std::wstring & rSvgDStatement)
|
||||
{
|
||||
Polyline.clear();
|
||||
const int nLen(rSvgDStatement.length());
|
||||
int nPos(0);
|
||||
bool bIsClosed(false);
|
||||
|
||||
double nLastX( 0.0 );
|
||||
double nLastY( 0.0 );
|
||||
|
||||
double nLastControlX( 0.0 );
|
||||
double nLastControlY( 0.0 );
|
||||
|
||||
_polyline aCurrPoly;
|
||||
|
||||
skipSpaces(nPos, rSvgDStatement, nLen);
|
||||
|
||||
while(nPos < nLen)
|
||||
{
|
||||
bool bRelative (false);
|
||||
bool bMoveTo (false);
|
||||
const wchar_t aCurrChar(rSvgDStatement[nPos]);
|
||||
|
||||
aCurrPoly.command.clear();
|
||||
|
||||
switch(aCurrChar)
|
||||
{
|
||||
case 'z' :
|
||||
{
|
||||
nPos++;
|
||||
skipSpaces(nPos, rSvgDStatement, nLen);
|
||||
|
||||
bIsClosed = true;
|
||||
|
||||
if( aCurrPoly.points.size() > 0)
|
||||
{
|
||||
const _point aFirst( aCurrPoly.points[0]);
|
||||
nLastX = aFirst.x.get();
|
||||
nLastY = aFirst.y.get();
|
||||
}
|
||||
|
||||
aCurrPoly.command=L"z";
|
||||
Polyline.push_back(aCurrPoly);
|
||||
|
||||
} break;
|
||||
case 'm' :
|
||||
case 't' :
|
||||
{
|
||||
bMoveTo = true;
|
||||
}
|
||||
case 'l' :
|
||||
case 'r' :
|
||||
{
|
||||
if('t' == aCurrChar || 'r' == aCurrChar)
|
||||
{
|
||||
bRelative = true;
|
||||
}
|
||||
|
||||
if(aCurrPoly.points.size() > 0)
|
||||
{
|
||||
if(bIsClosed)
|
||||
{
|
||||
}
|
||||
Polyline.push_back(aCurrPoly);
|
||||
|
||||
bIsClosed = false;
|
||||
|
||||
if(bMoveTo) aCurrPoly.command = L"m";
|
||||
else aCurrPoly.command = L"l";
|
||||
|
||||
aCurrPoly.points.clear();
|
||||
}
|
||||
nPos++;
|
||||
skipSpaces(nPos, rSvgDStatement, nLen);
|
||||
aCurrPoly.command.clear();
|
||||
|
||||
while(nPos < nLen && isOnNumberChar(rSvgDStatement, nPos))
|
||||
{
|
||||
double nX, nY;
|
||||
|
||||
if(!importDoubleAndSpaces(nX, nPos, rSvgDStatement, nLen)) return false;
|
||||
if(!importDoubleAndSpaces(nY, nPos, rSvgDStatement, nLen)) return false;
|
||||
|
||||
if(bRelative)
|
||||
{
|
||||
nX += nLastX;
|
||||
nY += nLastY;
|
||||
}
|
||||
|
||||
nLastX = nX;
|
||||
nLastY = nY;
|
||||
|
||||
if(bMoveTo) aCurrPoly.command = L"m";
|
||||
else aCurrPoly.command = L"l";
|
||||
|
||||
aCurrPoly.points.push_back(_point(nX, nY));
|
||||
Polyline.push_back(aCurrPoly);
|
||||
aCurrPoly.points.clear();
|
||||
}
|
||||
}break;
|
||||
|
||||
case 'c' :
|
||||
{
|
||||
nPos++;
|
||||
skipSpaces(nPos, rSvgDStatement, nLen);
|
||||
|
||||
while(nPos < nLen && isOnNumberChar(rSvgDStatement, nPos))
|
||||
{
|
||||
double nX, nY;
|
||||
double nX1, nY1;
|
||||
double nX2, nY2;
|
||||
|
||||
if(!importDoubleAndSpaces(nX1, nPos, rSvgDStatement, nLen)) return false;
|
||||
if(!importDoubleAndSpaces(nY1, nPos, rSvgDStatement, nLen)) return false;
|
||||
if(!importDoubleAndSpaces(nX2, nPos, rSvgDStatement, nLen)) return false;
|
||||
if(!importDoubleAndSpaces(nY2, nPos, rSvgDStatement, nLen)) return false;
|
||||
if(!importDoubleAndSpaces(nX, nPos, rSvgDStatement, nLen)) return false;
|
||||
if(!importDoubleAndSpaces(nY, nPos, rSvgDStatement, nLen)) return false;
|
||||
|
||||
aCurrPoly.command = L"c";
|
||||
|
||||
aCurrPoly.points.push_back(_point(nX1, nY1));
|
||||
aCurrPoly.points.push_back(_point(nX2, nY2));
|
||||
aCurrPoly.points.push_back(_point(nX, nY));
|
||||
|
||||
Polyline.push_back(aCurrPoly);
|
||||
aCurrPoly.points.clear();
|
||||
|
||||
nLastX = nX;
|
||||
nLastY = nY;
|
||||
|
||||
nLastControlX = nX2;
|
||||
nLastControlY = nY2;
|
||||
}
|
||||
}break;
|
||||
|
||||
default:
|
||||
{
|
||||
++nPos;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -39,10 +39,7 @@
|
||||
#include <boost/foreach.hpp>
|
||||
#include <boost/regex.hpp>
|
||||
|
||||
#include <cpdoccore/CPOptional.h>
|
||||
|
||||
namespace cpdoccore
|
||||
{
|
||||
#include "../../include/cpdoccore/CPOptional.h"
|
||||
|
||||
namespace svg_path
|
||||
{
|
||||
@ -60,23 +57,10 @@ namespace svg_path
|
||||
std::vector<_point> points; //будем бить строку пути по количеству точек в буковках
|
||||
|
||||
};
|
||||
//m - 1 point
|
||||
//c - 3 point
|
||||
//s - 2 point
|
||||
//l - 1 point
|
||||
//z - finish
|
||||
//h - 0.5 point :)
|
||||
//v - 0.5 point
|
||||
//q - 2 point
|
||||
//t - 1 point
|
||||
//a - [[[[
|
||||
void oox_serialize(std::wostream & _Wostream, _point const & val);
|
||||
void oox_serialize(std::wostream & _Wostream, _polyline const & val);
|
||||
void oox_serialize(std::wostream & _Wostream, std::vector<svg_path::_polyline> & path);
|
||||
|
||||
bool parseSvgD(std::vector<_polyline> & Polyline, const std::wstring & rSvgDStatement, bool bWrongPositionAfterZ);
|
||||
bool parsePolygon(std::vector<_polyline> & Polyline, const std::wstring & rPolygonStatement, bool bWrongPositionAfterZ, bool closed);
|
||||
|
||||
}
|
||||
bool parseVml(std::vector<_polyline> & Polyline, const std::wstring & path);
|
||||
bool parseSvgD(std::vector<_polyline> & Polyline, const std::wstring & path, bool bWrongPositionAfterZ);
|
||||
bool parsePolygon(std::vector<_polyline> & Polyline, const std::wstring & path, bool bWrongPositionAfterZ, bool closed);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -640,14 +640,14 @@ const wchar_t * table_shapes::name = L"shapes";
|
||||
|
||||
void table_shapes::docx_convert(oox::docx_conversion_context & Context)
|
||||
{
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->docx_convert(Context);
|
||||
}
|
||||
}
|
||||
void table_shapes::pptx_convert(oox::pptx_conversion_context & Context)
|
||||
{
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->pptx_convert(Context);
|
||||
}
|
||||
@ -655,7 +655,7 @@ void table_shapes::pptx_convert(oox::pptx_conversion_context & Context)
|
||||
|
||||
void table_shapes::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
{
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
}
|
||||
|
||||
@ -60,7 +60,7 @@ void table_database_ranges::add_child_element( xml::sax * Reader, const std::wst
|
||||
|
||||
void table_database_ranges::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
{
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
}
|
||||
@ -101,7 +101,7 @@ void table_database_range::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
if (table_contains_header_)
|
||||
Context.get_table_context().set_database_header(table_contains_header_->get());
|
||||
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
}
|
||||
@ -124,7 +124,7 @@ void table_sort::add_child_element( xml::sax * Reader, const std::wstring & Ns,
|
||||
|
||||
void table_sort::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
{
|
||||
for (int i = 0; i < table_sort_by_.size(); i++)
|
||||
for (size_t i = 0; i < table_sort_by_.size(); i++)
|
||||
{
|
||||
table_sort_by * sort_by = dynamic_cast<table_sort_by*>(table_sort_by_[i].get());
|
||||
|
||||
|
||||
@ -67,7 +67,7 @@ int table_table_cell_content::xlsx_convert(oox::xlsx_conversion_context & Contex
|
||||
Context.get_table_context().start_cell_content();
|
||||
Context.get_text_context().set_cell_text_properties(text_properties);
|
||||
|
||||
for (int i = 0 ; i < elements_.size(); i++)
|
||||
for (size_t i = 0 ; i < elements_.size(); i++)
|
||||
{
|
||||
elements_[i]->xlsx_convert(Context);
|
||||
}
|
||||
@ -191,7 +191,7 @@ void table_table_row::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
|
||||
CP_XML_STREAM();
|
||||
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = content_[i];
|
||||
|
||||
@ -233,7 +233,7 @@ void table_table_row::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
|
||||
void table_table_rows::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
{
|
||||
for (int i = 0; i < table_table_row_.size(); i++)
|
||||
for (size_t i = 0; i < table_table_row_.size(); i++)
|
||||
{
|
||||
table_table_row_[i]->xlsx_convert(Context);
|
||||
}
|
||||
@ -241,7 +241,7 @@ void table_table_rows::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
|
||||
void table_table_header_rows::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
{
|
||||
for (int i = 0; i < table_table_row_.size(); i++)
|
||||
for (size_t i = 0; i < table_table_row_.size(); i++)
|
||||
{
|
||||
table_table_row_[i]->xlsx_convert(Context);
|
||||
}
|
||||
@ -274,7 +274,7 @@ void table_rows::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
}
|
||||
|
||||
}
|
||||
for (int i = 0; i < table_table_row_.size(); i++)
|
||||
for (size_t i = 0; i < table_table_row_.size(); i++)
|
||||
{
|
||||
table_table_row_[i]->xlsx_convert(Context);
|
||||
}
|
||||
@ -293,7 +293,7 @@ void table_rows_no_group::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
|
||||
void table_rows_and_groups::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
{
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
}
|
||||
@ -336,7 +336,7 @@ void table_table::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
if (conditional_formats_)
|
||||
conditional_formats_->xlsx_convert(Context);
|
||||
|
||||
for (int i = 0 ; i < table_named_.size(); i++)
|
||||
for (size_t i = 0 ; i < table_named_.size(); i++)
|
||||
{
|
||||
table_named_[i]->xlsx_convert(Context);
|
||||
}
|
||||
@ -349,7 +349,7 @@ void table_columns::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
if (table_table_columns_)
|
||||
table_table_columns_->xlsx_convert(Context);
|
||||
|
||||
for (int i = 0; i < table_table_column_.size(); i++)
|
||||
for (size_t i = 0; i < table_table_column_.size(); i++)
|
||||
{
|
||||
table_table_column_[i]->xlsx_convert(Context);
|
||||
}
|
||||
@ -374,7 +374,7 @@ void table_columns_and_groups::xlsx_convert(oox::xlsx_conversion_context & Conte
|
||||
table_columns_no_group_.xlsx_convert(Context);
|
||||
*/
|
||||
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
office_element_ptr & elm = content_[i];
|
||||
elm->xlsx_convert(Context);
|
||||
@ -383,7 +383,7 @@ void table_columns_and_groups::xlsx_convert(oox::xlsx_conversion_context & Conte
|
||||
|
||||
void table_table_header_columns::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
{
|
||||
for (int i = 0; i < table_table_column_.size(); i++)
|
||||
for (size_t i = 0; i < table_table_column_.size(); i++)
|
||||
{
|
||||
table_table_column_[i]->xlsx_convert(Context);
|
||||
}
|
||||
|
||||
@ -52,7 +52,7 @@ void paragraph_attrs::add_attributes( const xml::attributes_wc_ptr & Attributes
|
||||
std::vector< std::wstring > classNamesArray;
|
||||
boost::algorithm::split(classNamesArray, classNames, boost::algorithm::is_any_of(L" "));
|
||||
|
||||
for (int i = 0; i < classNamesArray.size(); i++)
|
||||
for (size_t i = 0; i < classNamesArray.size(); i++)
|
||||
{
|
||||
text_class_names_.push_back( style_ref(classNamesArray[i]) );
|
||||
}
|
||||
|
||||
@ -387,7 +387,7 @@ void paragraph::docx_convert(oox::docx_conversion_context & Context)
|
||||
|
||||
if (!Context.get_paragraph_keep())// например Appendix I_IPP.odt - tracked elements (
|
||||
{
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->docx_convert(Context);
|
||||
}
|
||||
@ -1238,7 +1238,7 @@ void text_tracked_changes::add_child_element( xml::sax * Reader, const std::wstr
|
||||
|
||||
void text_tracked_changes::docx_convert(oox::docx_conversion_context & Context)
|
||||
{
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->docx_convert(Context);
|
||||
}
|
||||
@ -1263,7 +1263,7 @@ void text_changed_region::docx_convert(oox::docx_conversion_context & Context)
|
||||
|
||||
Context.get_text_tracked_context().start_change (*text_id_);
|
||||
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->docx_convert(Context);
|
||||
}
|
||||
@ -1296,7 +1296,7 @@ void text_unknown_base_change::docx_convert(oox::docx_conversion_context & Conte
|
||||
|
||||
//тут удаленный текст. не по стандарту сделать бы и форматы - стилями чтоли ....
|
||||
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
Context.get_text_tracked_context().start_changes_content();
|
||||
{
|
||||
@ -1311,7 +1311,7 @@ void text_unknown_base_change::docx_convert(oox::docx_conversion_context & Conte
|
||||
|
||||
//if (para)
|
||||
//{
|
||||
// for (int j = 0; j < para->content_.size(); j++)
|
||||
// for (size_t j = 0; j < para->content_.size(); j++)
|
||||
// {
|
||||
// para->content_[j]->docx_convert(Context);
|
||||
// }
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="windows-1251"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Version="8,00"
|
||||
Name="OdfFormatReaderLib"
|
||||
ProjectGUID="{50E20601-4A8D-4AFB-8870-63828D328429}"
|
||||
RootNamespace="cpodf"
|
||||
|
||||
@ -119,7 +119,7 @@ void header_footer_content::serialize(std::wostream & strm)
|
||||
if (tracked_changes_)
|
||||
tracked_changes_->serialize(strm);
|
||||
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->serialize(strm);
|
||||
}
|
||||
|
||||
@ -296,8 +296,10 @@ void number_currency_symbol::serialize(std::wostream & strm)
|
||||
CP_XML_ATTR_OPT(L"number:language", number_language_);
|
||||
CP_XML_ATTR_OPT(L"number:country", number_country_);
|
||||
|
||||
for (long i=0; i < text_.size(); i++)
|
||||
for (size_t i = 0; i < text_.size(); i++)
|
||||
{
|
||||
CP_XML_STREAM() << text_[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -248,7 +248,7 @@ std::wstring odf_chart_context::Impl::convert_formula(std::wstring oox_formula)
|
||||
|
||||
chart_chart* odf_chart_context::Impl::get_current_chart()
|
||||
{
|
||||
for (long i=current_level_.size()-1; i>=0; i--)
|
||||
for (long i = (long)current_level_.size() - 1; i >= 0; i--)
|
||||
{
|
||||
chart_chart * chart = dynamic_cast<chart_chart*>(current_level_[i].elm.get());
|
||||
if (chart) return chart;
|
||||
@ -257,7 +257,7 @@ chart_chart* odf_chart_context::Impl::get_current_chart()
|
||||
}
|
||||
chart_series* odf_chart_context::Impl::get_current_series()
|
||||
{
|
||||
for (long i=current_level_.size()-1; i>=0; i--)
|
||||
for (long i = (long)current_level_.size() - 1; i >= 0; i--)
|
||||
{
|
||||
chart_series * chart = dynamic_cast<chart_series*>(current_level_[i].elm.get());
|
||||
if (chart) return chart;
|
||||
@ -706,7 +706,7 @@ void odf_chart_context::end_group_series()
|
||||
bool presentZ = false;
|
||||
long countX = 0;
|
||||
long countY = 0;
|
||||
for (long j = 0; j < impl_->axis_.size(); j++)
|
||||
for (size_t j = 0; j < impl_->axis_.size(); j++)
|
||||
{
|
||||
if (impl_->axis_[j].dimension ==1) countX++;
|
||||
else if (impl_->axis_[j].dimension ==3) presentZ = true;
|
||||
@ -727,9 +727,9 @@ void odf_chart_context::end_group_series()
|
||||
countY--;
|
||||
}
|
||||
|
||||
for (long i=0; i < impl_->axis_group_series_.size(); i++)
|
||||
for (size_t i=0; i < impl_->axis_group_series_.size(); i++)
|
||||
{
|
||||
for (long j = 0; j < impl_->axis_.size(); j++)
|
||||
for (size_t j = 0; j < impl_->axis_.size(); j++)
|
||||
{
|
||||
if (impl_->axis_[j].oox_id == impl_->axis_group_series_[i] && impl_->axis_[j].dimension ==2)
|
||||
{
|
||||
@ -741,7 +741,7 @@ void odf_chart_context::end_group_series()
|
||||
}
|
||||
|
||||
|
||||
for (long i =0; i < impl_->group_series_.size() && axis_name.length() > 0; i++)
|
||||
for (size_t i =0; i < impl_->group_series_.size() && axis_name.length() > 0; i++)
|
||||
{
|
||||
chart_series *series= dynamic_cast<chart_series*>(impl_->group_series_[i].get());
|
||||
if (series)
|
||||
@ -899,7 +899,7 @@ void odf_chart_context::end_plot_area()
|
||||
if (plot_area)
|
||||
{
|
||||
std::wstring cell_range;
|
||||
for (long i = 0; i < impl_->data_cell_ranges_.size(); i++)
|
||||
for (size_t i = 0; i < impl_->data_cell_ranges_.size(); i++)
|
||||
{
|
||||
cell_range = cell_range + impl_->data_cell_ranges_[i].ref + L" ";
|
||||
}
|
||||
@ -928,7 +928,7 @@ void odf_chart_context::end_text()
|
||||
odf_text_context * text_context_ = text_context();
|
||||
if (text_context_ == NULL || impl_->current_level_.size() <1 )return;
|
||||
|
||||
for (long i=0; i< text_context_->text_elements_list_.size(); i++)
|
||||
for (size_t i=0; i< text_context_->text_elements_list_.size(); i++)
|
||||
{
|
||||
if (text_context_->text_elements_list_[i].level ==0)
|
||||
{
|
||||
@ -1400,7 +1400,7 @@ void odf_chart_context::end_chart()
|
||||
|
||||
|
||||
int cat = 0;
|
||||
for (long i = 0; i < impl_->axis_.size() && impl_->categories_.size() > 0; i++)
|
||||
for (size_t i = 0; i < impl_->axis_.size() && impl_->categories_.size() > 0; i++)
|
||||
{
|
||||
if (impl_->axis_[i].elm == NULL) continue;
|
||||
|
||||
@ -1626,7 +1626,7 @@ int odf_chart_context::Impl::create_local_table_rows(int curr_row, ods_table_sta
|
||||
|
||||
bool add = false;
|
||||
|
||||
for (long i = 0; i < cells.size(); i++)
|
||||
for (size_t i = 0; i < cells.size(); i++)
|
||||
{
|
||||
if (cells[i].cash_only)
|
||||
continue;
|
||||
@ -1690,9 +1690,9 @@ void odf_chart_context::Impl::create_local_table()
|
||||
int min_row = 0xffff;
|
||||
|
||||
//выкинем дублирующие ref
|
||||
for (long i = 0; i < cash_.size(); i++)
|
||||
for (size_t i = 0; i < cash_.size(); i++)
|
||||
{
|
||||
for (long j = i + 1; j < cash_.size(); j++)
|
||||
for (size_t j = i + 1; j < cash_.size(); j++)
|
||||
{
|
||||
if (cash_[j].ref == cash_[i].ref && cash_[j].ref.length() > 1)
|
||||
{
|
||||
@ -1701,7 +1701,7 @@ void odf_chart_context::Impl::create_local_table()
|
||||
}
|
||||
}
|
||||
|
||||
for (long i = 0; i < cash_.size(); i++)
|
||||
for (size_t i = 0; i < cash_.size(); i++)
|
||||
{
|
||||
std::vector<std::wstring> refs;
|
||||
boost::algorithm::split(refs,cash_[i].ref, boost::algorithm::is_any_of(L":"), boost::algorithm::token_compress_on);
|
||||
@ -1746,7 +1746,7 @@ void odf_chart_context::Impl::create_local_table()
|
||||
row_header = true;
|
||||
}
|
||||
|
||||
for (long j = 0; j < cash_[i].data_str.size(); j++)
|
||||
for (size_t j = 0; j < cash_[i].data_str.size(); j++)
|
||||
{
|
||||
_cell_cash c = {0, 0, false, false, L""};
|
||||
|
||||
@ -1813,7 +1813,7 @@ void odf_chart_context::Impl::create_local_table()
|
||||
table_elm->add_child_element(cols_elm);
|
||||
|
||||
|
||||
for (long i=0; i < max_columns - (col_header ? 1 : 0); i++)
|
||||
for (int i=0; i < max_columns - (col_header ? 1 : 0); i++)
|
||||
cols_elm->add_child_element(col_elm);
|
||||
|
||||
office_element_ptr row_headers_elm;
|
||||
@ -1840,12 +1840,12 @@ void odf_chart_context::Impl::create_local_table()
|
||||
if ((std::min)(r1, r2) > min_row) min_row = (std::min)(r1, r2);
|
||||
if ((std::min)(c1, c2) > min_col) min_col = (std::min)(c1, c2);
|
||||
|
||||
for (int i = 0 ; i < cells_cash_label.size(); i++)
|
||||
for (size_t i = 0 ; i < cells_cash_label.size(); i++)
|
||||
{
|
||||
cells_cash_label[i].row -= min_row - 1;
|
||||
cells_cash_label[i].col -= min_col - 1;
|
||||
}
|
||||
for (int i = 0 ; i < cells_cash.size(); i++)
|
||||
for (size_t i = 0 ; i < cells_cash.size(); i++)
|
||||
{
|
||||
cells_cash[i].row -= min_row - 1;
|
||||
cells_cash[i].col -= min_col - 1;
|
||||
|
||||
@ -111,7 +111,7 @@ void odf_comment_context::start_comment(office_element_ptr &elm, int oox_id)
|
||||
}
|
||||
void odf_comment_context::end_comment(office_element_ptr &elm, int oox_id)
|
||||
{
|
||||
for(long i=0; i < impl_->comments_.size(); i++)
|
||||
for (size_t i = 0; i < impl_->comments_.size(); i++)
|
||||
{
|
||||
if (impl_->comments_[i].oox_id == oox_id)
|
||||
{
|
||||
@ -138,7 +138,7 @@ void odf_comment_context::end_comment_content()
|
||||
}
|
||||
int odf_comment_context::find_by_id(int oox_id)
|
||||
{
|
||||
for(long i=0; i < impl_->comments_.size(); i++)
|
||||
for (size_t i=0; i < impl_->comments_.size(); i++)
|
||||
{
|
||||
if (impl_->comments_[i].oox_id == oox_id)
|
||||
{
|
||||
@ -150,7 +150,7 @@ int odf_comment_context::find_by_id(int oox_id)
|
||||
}
|
||||
std::wstring odf_comment_context::find_name_by_id(int oox_id)
|
||||
{
|
||||
for(long i=0; i < impl_->comments_.size(); i++)
|
||||
for (size_t i = 0; i < impl_->comments_.size(); i++)
|
||||
{
|
||||
if (impl_->comments_[i].oox_id == oox_id) return impl_->comments_[i].odf_name;
|
||||
}
|
||||
|
||||
@ -117,7 +117,7 @@ _mediaitems* odf_conversion_context::mediaitems()
|
||||
void odf_conversion_context::end_document()
|
||||
{
|
||||
rels rels_;
|
||||
for (long i=0; i< objects_.size(); i++)
|
||||
for (size_t i = 0; i < objects_.size(); i++)
|
||||
{
|
||||
_object & object = objects_[i];
|
||||
bool isRoot = (i == 0 ? true : false);
|
||||
|
||||
@ -55,8 +55,7 @@
|
||||
#include "style_text_properties.h"
|
||||
#include "style_paragraph_properties.h"
|
||||
#include "style_graphic_properties.h"
|
||||
|
||||
|
||||
#include "style_page_layout_properties.h"
|
||||
|
||||
namespace cpdoccore
|
||||
{
|
||||
@ -175,6 +174,7 @@ struct odf_drawing_state
|
||||
svg_y_ = boost::none;
|
||||
svg_height_ = boost::none;
|
||||
svg_width_ = boost::none;
|
||||
fill_color_ = boost::none;
|
||||
|
||||
name_ = L"";
|
||||
description_ = L"";
|
||||
@ -208,7 +208,8 @@ struct odf_drawing_state
|
||||
int z_order_;
|
||||
bool hidden_;
|
||||
|
||||
_CP_OPT(double) rotateAngle;
|
||||
_CP_OPT(double) rotateAngle;
|
||||
_CP_OPT(unsigned int) fill_color_;
|
||||
|
||||
bool flipH;
|
||||
bool flipV;
|
||||
@ -238,8 +239,9 @@ public:
|
||||
|
||||
width = height = x = y = 0;
|
||||
|
||||
is_header_ = false;
|
||||
is_footer_ = false;
|
||||
is_header_ = false;
|
||||
is_footer_ = false;
|
||||
is_background_ = false;
|
||||
//некоторые свойства для объектов графики не поддерживаюися в редакторах Liber && OpenOffice.net
|
||||
//в MS Office и в нашем - проблем таких нет.
|
||||
}
|
||||
@ -254,6 +256,7 @@ public:
|
||||
|
||||
bool is_footer_;
|
||||
bool is_header_;
|
||||
bool is_background_;
|
||||
|
||||
void create_draw_base(int type);
|
||||
office_element_ptr create_draw_element(int type);
|
||||
@ -309,10 +312,18 @@ void odf_drawing_context::set_header_state(bool Val)
|
||||
{
|
||||
impl_->is_header_ = Val;
|
||||
}
|
||||
|
||||
void odf_drawing_context::set_background_state(bool Val)
|
||||
{
|
||||
impl_->is_background_ = Val;
|
||||
|
||||
impl_->current_graphic_properties = new style_graphic_properties();
|
||||
}
|
||||
|
||||
void odf_drawing_context::check_anchor()
|
||||
{
|
||||
return;
|
||||
if ((impl_->is_footer_ || impl_->is_header_) && (impl_->anchor_settings_.run_through_) && (impl_->anchor_settings_.run_through_->get_type() == run_through::Background))
|
||||
if ((impl_->is_footer_ || impl_->is_header_ || impl_->is_background_) && (impl_->anchor_settings_.run_through_) && (impl_->anchor_settings_.run_through_->get_type() == run_through::Background))
|
||||
{
|
||||
set_anchor(anchor_type::Char);
|
||||
//подозрительно на подложку страницы
|
||||
@ -444,7 +455,18 @@ void odf_drawing_context::start_drawing()
|
||||
}
|
||||
void odf_drawing_context::end_drawing()
|
||||
{
|
||||
if (impl_->current_drawing_state_.elements_.empty()) return;
|
||||
if (impl_->current_drawing_state_.elements_.empty())
|
||||
{
|
||||
if (impl_->is_background_ && impl_->current_graphic_properties)
|
||||
{
|
||||
style_page_layout_properties * current_layout_properties = impl_->odf_context_->page_layout_context()->last_layout()->get_properties();
|
||||
current_layout_properties->style_page_layout_properties_attlist_.common_draw_fill_attlist_.apply_from(impl_->current_graphic_properties->content().common_draw_fill_attlist_);
|
||||
delete impl_->current_graphic_properties;
|
||||
impl_->current_graphic_properties = NULL;
|
||||
impl_->current_drawing_state_.clear();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
draw_base* draw = dynamic_cast<draw_base*>(impl_->current_drawing_state_.elements_[0].elm.get());
|
||||
|
||||
@ -570,12 +592,13 @@ void odf_drawing_context::end_drawing()
|
||||
{
|
||||
impl_->tops_elements_.push_back(impl_->current_drawing_state_.elements_[0].elm);
|
||||
}
|
||||
|
||||
///////////////
|
||||
impl_->current_drawing_state_.clear();
|
||||
|
||||
impl_->current_graphic_properties = NULL;
|
||||
impl_->current_paragraph_properties = NULL;
|
||||
impl_->current_text_properties = NULL;
|
||||
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
@ -629,7 +652,7 @@ void odf_drawing_context::Impl::create_draw_base(int type)
|
||||
draw_base* draw = dynamic_cast<draw_base*>(draw_elm.get());
|
||||
if (draw == NULL)return;
|
||||
//////////
|
||||
styles_context_->create_style(L"",style_family::Graphic, true, false, -1);
|
||||
styles_context_->create_style(L"", style_family::Graphic, true, false, -1);
|
||||
|
||||
office_element_ptr & style_shape_elm = styles_context_->last_state()->get_office_element();
|
||||
std::wstring style_name;
|
||||
@ -885,7 +908,7 @@ void odf_drawing_context::end_shape()
|
||||
|
||||
enhanced->draw_enhanced_geometry_attlist_.draw_enhanced_path_ = shape_define->enhanced_path;
|
||||
|
||||
for (long i=0; i < shape_define->equations.size();i++)
|
||||
for (size_t i = 0; i < shape_define->equations.size();i++)
|
||||
{
|
||||
office_element_ptr elm_eq;
|
||||
create_element(L"draw", L"equation", elm_eq, impl_->odf_context_);
|
||||
@ -899,7 +922,7 @@ void odf_drawing_context::end_shape()
|
||||
end_element();
|
||||
}
|
||||
//-----------------------------
|
||||
for (long i=0; i < shape_define->handles.size();i++)
|
||||
for (size_t i = 0; i < shape_define->handles.size();i++)
|
||||
{
|
||||
office_element_ptr elm_h;
|
||||
create_element(L"draw", L"handle", elm_h, impl_->odf_context_);
|
||||
@ -1068,7 +1091,7 @@ void odf_drawing_context::set_no_fill()
|
||||
switch(impl_->current_drawing_part_)
|
||||
{
|
||||
case Area:
|
||||
if ((impl_->is_footer_ || impl_->is_header_) &&
|
||||
if ((impl_->is_footer_ || impl_->is_header_ || impl_->is_background_) &&
|
||||
(impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_) &&
|
||||
(impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_->get_type() == draw_fill::bitmap))
|
||||
{
|
||||
@ -1088,6 +1111,17 @@ void odf_drawing_context::set_type_fill(int type)
|
||||
|
||||
impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_ = (draw_fill::type)type;
|
||||
}
|
||||
|
||||
void odf_drawing_context::set_fill_color(unsigned int Color)
|
||||
{
|
||||
impl_->current_drawing_state_.fill_color_ = Color;
|
||||
}
|
||||
|
||||
_CP_OPT(unsigned int) odf_drawing_context::get_fill_color()
|
||||
{
|
||||
return impl_->current_drawing_state_.fill_color_;
|
||||
}
|
||||
|
||||
void odf_drawing_context::set_solid_fill(std::wstring hexColor)
|
||||
{
|
||||
if (!impl_->current_graphic_properties)return;
|
||||
@ -1097,28 +1131,29 @@ void odf_drawing_context::set_solid_fill(std::wstring hexColor)
|
||||
|
||||
switch(impl_->current_drawing_part_)
|
||||
{
|
||||
case Area:
|
||||
impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_color_ = hexColor;
|
||||
impl_->current_graphic_properties->content().common_background_color_attlist_.fo_background_color_ = color(hexColor);
|
||||
//последнее нужно - что если будут вводить текст - под текстом будет цвет фона (или он поменяется в полях текста)
|
||||
|
||||
if ((impl_->is_footer_ || impl_->is_header_) &&
|
||||
(impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_) &&
|
||||
(impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_->get_type() == draw_fill::bitmap))
|
||||
{
|
||||
}
|
||||
else
|
||||
impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_ = draw_fill::solid;
|
||||
break;
|
||||
case Line:
|
||||
impl_->current_graphic_properties->content().svg_stroke_color_ = hexColor;
|
||||
if (!impl_->current_graphic_properties->content().draw_stroke_)
|
||||
impl_->current_graphic_properties->content().draw_stroke_=line_style(line_style::Solid);//default
|
||||
if (!impl_->current_graphic_properties->content().svg_stroke_width_)
|
||||
impl_->current_graphic_properties->content().svg_stroke_width_ = length(length(1,length::pt).get_value_unit(length::cm),length::cm);//default
|
||||
break;
|
||||
case Area:
|
||||
impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_color_ = hexColor;
|
||||
impl_->current_graphic_properties->content().common_background_color_attlist_.fo_background_color_ = color(hexColor);
|
||||
//последнее нужно - что если будут вводить текст - под текстом будет цвет фона (или он поменяется в полях текста)
|
||||
|
||||
if ((impl_->is_footer_ || impl_->is_header_ || impl_->is_background_) &&
|
||||
(impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_) &&
|
||||
(impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_->get_type() == draw_fill::bitmap))
|
||||
{
|
||||
}
|
||||
else
|
||||
impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_ = draw_fill::solid;
|
||||
break;
|
||||
case Line:
|
||||
impl_->current_graphic_properties->content().svg_stroke_color_ = hexColor;
|
||||
if (!impl_->current_graphic_properties->content().draw_stroke_)
|
||||
impl_->current_graphic_properties->content().draw_stroke_=line_style(line_style::Solid);//default
|
||||
if (!impl_->current_graphic_properties->content().svg_stroke_width_)
|
||||
impl_->current_graphic_properties->content().svg_stroke_width_ = length(length(1,length::pt).get_value_unit(length::cm),length::cm);//default
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void odf_drawing_context::set_z_order(int id)
|
||||
{
|
||||
if (id < 0)
|
||||
@ -1243,7 +1278,7 @@ void odf_drawing_context::set_object_foreground(bool Val)
|
||||
{
|
||||
if (Val)
|
||||
{
|
||||
if (impl_->is_footer_|| impl_->is_header_)
|
||||
if (impl_->is_footer_|| impl_->is_header_ || impl_->is_background_)
|
||||
{
|
||||
impl_->anchor_settings_.run_through_ = run_through(run_through::Background);
|
||||
}
|
||||
@ -1273,7 +1308,7 @@ void odf_drawing_context::set_margin_bottom (double valPt)
|
||||
}
|
||||
void odf_drawing_context::set_anchor(int type)
|
||||
{
|
||||
if ((impl_->is_footer_|| impl_->is_header_) && type == anchor_type::Page)
|
||||
if ((impl_->is_footer_|| impl_->is_header_ || impl_->is_background_) && type == anchor_type::Page)
|
||||
{
|
||||
type = anchor_type::Paragraph;
|
||||
}
|
||||
@ -1369,7 +1404,7 @@ void odf_drawing_context::set_horizontal_pos(double offset_pt)
|
||||
}
|
||||
void odf_drawing_context::set_default_wrap_style()
|
||||
{
|
||||
if (impl_->is_header_ || impl_->is_footer_ )
|
||||
if (impl_->is_header_ || impl_->is_footer_ || impl_->is_background_)
|
||||
{
|
||||
impl_->anchor_settings_.style_wrap_ = style_wrap::RunThrough;
|
||||
}
|
||||
@ -1879,7 +1914,7 @@ void odf_drawing_context::set_textarea_padding(_CP_OPT(double) & left, _CP_OPT(d
|
||||
//вложенные элементы
|
||||
void odf_drawing_context::start_image(std::wstring odf_path)
|
||||
{
|
||||
if (impl_->is_footer_ || impl_->is_header_)
|
||||
if (impl_->is_footer_ || impl_->is_header_ || impl_->is_background_)
|
||||
{
|
||||
start_shape(142/*SimpleTypes::shapetypeRect*/);
|
||||
start_bitmap_style();
|
||||
@ -2011,7 +2046,7 @@ void odf_drawing_context::set_text_box_parent_style(std::wstring style_name)
|
||||
|
||||
void odf_drawing_context::end_image()
|
||||
{
|
||||
if (impl_->is_footer_ || impl_->is_header_)
|
||||
if (impl_->is_footer_ || impl_->is_header_ || impl_->is_background_)
|
||||
{
|
||||
end_bitmap_style();
|
||||
end_shape();
|
||||
@ -2093,7 +2128,7 @@ bool odf_drawing_context::is_exist_content()
|
||||
|
||||
void odf_drawing_context::finalize(office_element_ptr & root_elm)//для привязки
|
||||
{
|
||||
for (int i=0; i< impl_->tops_elements_.size(); i++)
|
||||
for (size_t i=0; i< impl_->tops_elements_.size(); i++)
|
||||
{
|
||||
root_elm->add_child_element(impl_->tops_elements_[i]);
|
||||
}
|
||||
@ -2109,7 +2144,7 @@ void odf_drawing_context::set_text(odf_text_context* text_context)
|
||||
{
|
||||
if (text_context == NULL || impl_->current_level_.size() <1 )return;
|
||||
|
||||
for (long i=0; i< text_context->text_elements_list_.size(); i++)
|
||||
for (size_t i = 0; i < text_context->text_elements_list_.size(); i++)
|
||||
{
|
||||
if (text_context->text_elements_list_[i].level ==0)
|
||||
{
|
||||
@ -2179,9 +2214,11 @@ void odf_drawing_context::start_gradient_style()
|
||||
gradient->draw_start_color_ = impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_color_;
|
||||
if (gradient->draw_start_color_) gradient->draw_start_intensity_ = 100.;
|
||||
|
||||
gradient->draw_border_ = 0;
|
||||
impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_gradient_name_ = gradient->draw_name_;
|
||||
impl_->current_graphic_properties->content().common_draw_fill_attlist_.draw_fill_ = draw_fill(draw_fill::gradient);
|
||||
|
||||
|
||||
}
|
||||
void odf_drawing_context::set_gradient_type(gradient_style::type style)
|
||||
{
|
||||
@ -2198,7 +2235,7 @@ void odf_drawing_context::set_gradient_start(std::wstring hexColor, _CP_OPT(doub
|
||||
int res = 0;
|
||||
if ((res = hexColor.find(L"#")) < 0) hexColor = std::wstring(L"#") + hexColor;
|
||||
|
||||
gradient->draw_start_color_ = hexColor;
|
||||
gradient->draw_start_color_ = hexColor;
|
||||
gradient->draw_start_intensity_ = 100.;
|
||||
}
|
||||
void odf_drawing_context::set_gradient_end (std::wstring hexColor, _CP_OPT(double) & intensiv)
|
||||
@ -2209,15 +2246,15 @@ void odf_drawing_context::set_gradient_end (std::wstring hexColor, _CP_OPT(doub
|
||||
int res = 0;
|
||||
if ((res = hexColor.find(L"#")) < 0) hexColor = std::wstring(L"#") + hexColor;
|
||||
|
||||
gradient->draw_end_color_ = hexColor;
|
||||
gradient->draw_end_intensity_ = 100.;
|
||||
gradient->draw_end_color_ = hexColor;
|
||||
gradient->draw_end_intensity_ = 100.;
|
||||
}
|
||||
void odf_drawing_context::set_gradient_angle(double angle)
|
||||
{
|
||||
draw_gradient * gradient = dynamic_cast<draw_gradient *>(impl_->styles_context_->last_state(style_family::Gradient)->get_office_element().get());
|
||||
if (!gradient) return;
|
||||
|
||||
gradient->draw_angle_ = (270-angle)*10;//(int)((360 - angle)/180. * 3.14159265358979323846);
|
||||
gradient->draw_angle_ = (270- angle) * 10;//(int)((360 - angle)/180. * 3.14159265358979323846);
|
||||
}
|
||||
void odf_drawing_context::set_gradient_rect(double l, double t, double r,double b)
|
||||
{
|
||||
@ -2721,7 +2758,7 @@ void odf_drawing_context::set_image_client_rect_inch(double l, double t, double
|
||||
void odf_drawing_context::set_bitmap_link(std::wstring file_path)
|
||||
{
|
||||
std::wstring odf_ref_name ;
|
||||
impl_->odf_context_->mediaitems()->add_or_find(file_path,_mediaitems::typeImage,odf_ref_name);
|
||||
impl_->odf_context_->mediaitems()->add_or_find(file_path, _mediaitems::typeImage, odf_ref_name);
|
||||
|
||||
if (impl_->current_drawing_state_.oox_shape_preset == 3000)
|
||||
{
|
||||
|
||||
@ -64,8 +64,10 @@ public:
|
||||
void clear ();
|
||||
void set_styles_context (odf_style_context* styles_context);//для embedded
|
||||
|
||||
void set_header_state (bool Val);
|
||||
void set_footer_state (bool Val);
|
||||
void set_header_state (bool Val);
|
||||
void set_footer_state (bool Val);
|
||||
void set_background_state (bool Val);
|
||||
|
||||
void check_anchor ();
|
||||
|
||||
void set_margin_left (double valPt);
|
||||
@ -173,6 +175,7 @@ public:
|
||||
void set_type_fill (int type);//for area - temp for objects
|
||||
void set_solid_fill (std::wstring hexColor);
|
||||
void set_opacity (double percent);
|
||||
|
||||
//////////////////////////////////////////////////////////////
|
||||
void start_area_properties();
|
||||
void end_area_properties();
|
||||
@ -187,6 +190,8 @@ public:
|
||||
std::wstring add_marker_style(int type);
|
||||
void end_line_properties ();
|
||||
|
||||
_CP_OPT(unsigned int) get_fill_color ();
|
||||
void set_fill_color (unsigned int color);
|
||||
//void start_shadow_properties();
|
||||
//void end_shadow_properties();
|
||||
// пока одной функией ..
|
||||
|
||||
@ -56,7 +56,7 @@ void odf_lists_styles_context::set_odf_context(odf_conversion_context * Context)
|
||||
|
||||
void odf_lists_styles_context::process_styles(office_element_ptr root )
|
||||
{
|
||||
for (long i=0; i< lists_format_array_.size(); i++)
|
||||
for (size_t i = 0; i < lists_format_array_.size(); i++)
|
||||
{
|
||||
if (lists_format_array_[i].elements.size() < 1) continue;
|
||||
|
||||
@ -70,7 +70,7 @@ void odf_lists_styles_context::add_style(int style_num, int based_num)
|
||||
|
||||
std::wstring style_name;
|
||||
|
||||
for (long i=0 ; i < lists_format_array_.size(); i++)
|
||||
for (size_t i = 0 ; i < lists_format_array_.size(); i++)
|
||||
{
|
||||
if (lists_format_array_[i].oox_based_number == based_num)
|
||||
{
|
||||
@ -81,7 +81,7 @@ void odf_lists_styles_context::add_style(int style_num, int based_num)
|
||||
}
|
||||
std::wstring odf_lists_styles_context::get_style_name1(int oox_style_num)
|
||||
{
|
||||
for (long i=0 ; i < lists_format_array_.size(); i++)
|
||||
for (size_t i=0 ; i < lists_format_array_.size(); i++)
|
||||
{
|
||||
if (lists_format_array_[i].oox_based_number == oox_style_num)
|
||||
{
|
||||
|
||||
@ -142,7 +142,7 @@ void odf_notes_context::end_note_content()
|
||||
|
||||
int odf_notes_context::find_by_id(int oox_id, int type)
|
||||
{
|
||||
for (int i=0; i < impl_->notes_.size(); i++)
|
||||
for (size_t i=0; i < impl_->notes_.size(); i++)
|
||||
{
|
||||
if (impl_->notes_[i].oox_id == oox_id &&
|
||||
impl_->notes_[i].type == type)
|
||||
@ -155,7 +155,7 @@ int odf_notes_context::find_by_id(int oox_id, int type)
|
||||
}
|
||||
std::wstring odf_notes_context::find_name_by_id(int oox_id, int type)
|
||||
{
|
||||
for (int i=0; i < impl_->notes_.size(); i++)
|
||||
for (size_t i=0; i < impl_->notes_.size(); i++)
|
||||
{
|
||||
if (impl_->notes_[i].oox_id == oox_id &&
|
||||
impl_->notes_[i].type == type)
|
||||
|
||||
@ -362,7 +362,7 @@ number_format_state & odf_number_styles_context::add_or_find(int oox_num_fmt, st
|
||||
|
||||
void odf_number_styles_context::process_styles(office_element_ptr root )
|
||||
{
|
||||
for (long i=0; i< number_format_array_.size(); i++)
|
||||
for (size_t i=0; i< number_format_array_.size(); i++)
|
||||
{
|
||||
create_style(number_format_array_[i]);
|
||||
|
||||
@ -432,7 +432,7 @@ void odf_number_styles_context::create_numbers(number_format_state & state, offi
|
||||
|
||||
boost::algorithm::split(numbers, str1, boost::algorithm::is_any_of(L".,"), boost::algorithm::token_compress_on);
|
||||
int ind=1;//
|
||||
for (long i=0;i<numbers.size();i++)
|
||||
for (size_t i = 0;i < numbers.size(); i++)
|
||||
{
|
||||
if (numbers[i].length()<1)continue;
|
||||
if (ind==1)min_digit= numbers[i].length();
|
||||
|
||||
@ -106,7 +106,7 @@ void odf_page_layout_context::add_master_page(std::wstring page_name)
|
||||
|
||||
void odf_page_layout_context::process_master_styles(office_element_ptr root )
|
||||
{
|
||||
for (long i =0; i < master_state_list_.size(); i++)
|
||||
for (size_t i =0 ; i < master_state_list_.size(); i++)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -532,7 +532,7 @@ void odf_page_layout_context::set_pages_mirrored(bool val)
|
||||
{
|
||||
//for all
|
||||
|
||||
for (long i=0; i < layout_state_list_.size(); i++)
|
||||
for (size_t i = 0; i < layout_state_list_.size(); i++)
|
||||
{
|
||||
layout_state_list_[i].set_pages_mirrored(val);
|
||||
}
|
||||
|
||||
@ -175,7 +175,7 @@ style_page_layout_properties *odf_layout_state::get_properties()
|
||||
{
|
||||
style_page_layout_properties *result=NULL;
|
||||
|
||||
for (long i= 1; i<elements_.size(); i++)//"0" - root
|
||||
for (size_t i= 1; i<elements_.size(); i++)//"0" - root
|
||||
{
|
||||
result = dynamic_cast<style_page_layout_properties *>(elements_[i].elm.get());
|
||||
if (result) return result;
|
||||
@ -185,7 +185,7 @@ style_page_layout_properties *odf_layout_state::get_properties()
|
||||
|
||||
style_header_footer_properties *odf_layout_state::get_header_properties()
|
||||
{
|
||||
for (long i = 1; i < elements_.size(); i++)//"0" - root
|
||||
for (size_t i = 1; i < elements_.size(); i++)//"0" - root
|
||||
{
|
||||
style_header_style *style_ = dynamic_cast<style_header_style *>(elements_[i].elm.get());
|
||||
if (style_)
|
||||
@ -197,7 +197,7 @@ style_header_footer_properties *odf_layout_state::get_header_properties()
|
||||
}
|
||||
style_header_footer_properties *odf_layout_state::get_footer_properties()
|
||||
{
|
||||
for (long i = 1; i < elements_.size(); i++)//"0" - root
|
||||
for (size_t i = 1; i < elements_.size(); i++)//"0" - root
|
||||
{
|
||||
style_footer_style *style_ = dynamic_cast<style_footer_style *>(elements_[i].elm.get());
|
||||
if (style_)
|
||||
|
||||
@ -142,7 +142,7 @@ void odf_settings_context::process_office_settings(office_element_ptr root )
|
||||
if (item_map_indexed) item_map_indexed->config_name_ = L"Views";
|
||||
}
|
||||
|
||||
for (int v = 0 ; v < views_.size(); v++)
|
||||
for (size_t v = 0 ; v < views_.size(); v++)
|
||||
{
|
||||
office_element_ptr views_entry_elm;
|
||||
{
|
||||
@ -150,7 +150,7 @@ void odf_settings_context::process_office_settings(office_element_ptr root )
|
||||
views_elm->add_child_element(views_entry_elm);
|
||||
}
|
||||
|
||||
for (int i = 0; i < views_[v].content.size(); i++)
|
||||
for (size_t i = 0; i < views_[v].content.size(); i++)
|
||||
{
|
||||
views_entry_elm->add_child_element(views_[v].content[i]);
|
||||
}
|
||||
@ -164,7 +164,7 @@ void odf_settings_context::process_office_settings(office_element_ptr root )
|
||||
item_map_named= dynamic_cast<settings_config_item_map_named*>(tables_elm.get());
|
||||
if (item_map_named) item_map_named->config_name_ = L"Tables";
|
||||
|
||||
for (int t = 0 ; t < views_[v].tables.size(); t++)
|
||||
for (size_t t = 0 ; t < views_[v].tables.size(); t++)
|
||||
{
|
||||
office_element_ptr table_elm;
|
||||
create_element(L"config", L"config-item-map-entry", table_elm, odf_context_);
|
||||
@ -173,7 +173,7 @@ void odf_settings_context::process_office_settings(office_element_ptr root )
|
||||
item_map_entry= dynamic_cast<settings_config_item_map_entry*>(table_elm.get());
|
||||
if (item_map_entry) item_map_entry->config_name_ = views_[v].tables[t].name;
|
||||
|
||||
for (int j = 0; j < views_[v].tables[t].content.size(); j++)
|
||||
for (size_t j = 0; j < views_[v].tables[t].content.size(); j++)
|
||||
{
|
||||
table_elm->add_child_element(views_[v].tables[t].content[j]);
|
||||
}
|
||||
@ -190,7 +190,7 @@ void odf_settings_context::process_office_settings(office_element_ptr root )
|
||||
item_set = dynamic_cast<settings_config_item_set*>(ooo_config_elm.get());
|
||||
if (item_set) item_set->config_name_ = L"ooo:configuration-settings";
|
||||
|
||||
for (int j = 0; j < config_content_.size(); j++)
|
||||
for (size_t j = 0; j < config_content_.size(); j++)
|
||||
{
|
||||
ooo_config_elm->add_child_element(config_content_[j]);
|
||||
}
|
||||
|
||||
@ -80,7 +80,7 @@ void odf_style_context::set_odf_context(odf_conversion_context * Context)
|
||||
|
||||
odf_style_state_ptr odf_style_context::last_state(style_family::type family)
|
||||
{
|
||||
for (long i = style_state_list_.size()-1; i>=0; i--)
|
||||
for (size_t i = style_state_list_.size()-1; i>=0; i--)
|
||||
{
|
||||
if (style_state_list_[i]->get_family_type() == family || family == style_family::None )
|
||||
{
|
||||
@ -144,7 +144,7 @@ void odf_style_context::reset_defaults()
|
||||
|
||||
void odf_style_context::process_automatic_for_styles(office_element_ptr root )
|
||||
{//автоматические стили для эементнов стилей
|
||||
for (long i =0; i < style_state_list_.size(); i++)
|
||||
for (size_t i =0; i < style_state_list_.size(); i++)
|
||||
{
|
||||
if (style_state_list_[i]->writable_ == false) continue;
|
||||
|
||||
@ -154,7 +154,7 @@ void odf_style_context::process_automatic_for_styles(office_element_ptr root )
|
||||
}
|
||||
void odf_style_context::process_automatic_styles(office_element_ptr root )
|
||||
{//автоматические стили для элементов
|
||||
for (long i =0; i < style_state_list_.size(); i++)
|
||||
for (size_t i =0; i < style_state_list_.size(); i++)
|
||||
{
|
||||
if (style_state_list_[i]->writable_ == false) continue;
|
||||
|
||||
@ -167,7 +167,7 @@ void odf_style_context::process_office_styles(office_element_ptr root )
|
||||
{
|
||||
number_styles_context_.process_styles(root );
|
||||
|
||||
for (long i =0; i < style_state_list_.size(); i++)
|
||||
for (size_t i =0; i < style_state_list_.size(); i++)
|
||||
{
|
||||
if (style_state_list_[i]->writable_ == false) continue;
|
||||
|
||||
@ -179,7 +179,7 @@ void odf_style_context::process_office_styles(office_element_ptr root )
|
||||
}
|
||||
std::wstring odf_style_context::find_odf_style_name(int oox_id_style, style_family::type family, bool root, bool automatic)
|
||||
{
|
||||
for (long i =0; i < style_state_list_.size(); i++)
|
||||
for (size_t i =0; i < style_state_list_.size(); i++)
|
||||
{
|
||||
if (style_state_list_[i]->odf_style_)
|
||||
{
|
||||
@ -199,7 +199,7 @@ std::wstring odf_style_context::find_odf_style_name(int oox_id_style, style_fami
|
||||
//office_element_ptr odf_style_context::find_odf_style(int oox_id_style, style_family::type family, bool root, _CP_OPT(bool) automatic)
|
||||
//{
|
||||
// //for (std::list<odf_style_state>::iterator it = style_state_list_.begin(); it != style_state_list_.end(); it++)
|
||||
// for (int i=0;i<style_state_list_.size(); i++)
|
||||
// for (size_t i=0;i<style_state_list_.size(); i++)
|
||||
// {
|
||||
// if (style_state_list_[i]->odf_style_)
|
||||
// {
|
||||
@ -218,7 +218,7 @@ std::wstring odf_style_context::find_odf_style_name(int oox_id_style, style_fami
|
||||
//}
|
||||
std::wstring odf_style_context::find_conditional_style_name(int oox_id_style, style_family::type family)
|
||||
{
|
||||
for (long i =0; i < style_state_list_.size(); i++)
|
||||
for (size_t i =0; i < style_state_list_.size(); i++)
|
||||
{
|
||||
if (style_state_list_[i]->odf_style_)
|
||||
{
|
||||
@ -235,7 +235,7 @@ std::wstring odf_style_context::find_conditional_style_name(int oox_id_style, st
|
||||
}
|
||||
office_element_ptr odf_style_context::find_conditional_style(int oox_id_style, style_family::type family)
|
||||
{
|
||||
for (int i=0;i<style_state_list_.size(); i++)
|
||||
for (size_t i = 0; i < style_state_list_.size(); i++)
|
||||
{
|
||||
if (style_state_list_[i]->odf_style_)
|
||||
{
|
||||
@ -252,7 +252,7 @@ office_element_ptr odf_style_context::find_conditional_style(int oox_id_style, s
|
||||
}
|
||||
bool odf_style_context::find_odf_style_state(int oox_id_style, style_family::type family, odf_style_state_ptr & state, bool root, bool automatic)
|
||||
{
|
||||
for (int i=0;i<style_state_list_.size(); i++)
|
||||
for (size_t i = 0; i < style_state_list_.size(); i++)
|
||||
{
|
||||
if (style_state_list_[i]->odf_style_)
|
||||
{
|
||||
@ -275,7 +275,7 @@ bool odf_style_context::find_odf_style_state(int oox_id_style, style_family::typ
|
||||
}
|
||||
bool odf_style_context::find_odf_default_style_state(style_family::type family, odf_style_state_ptr & state)
|
||||
{
|
||||
for (int i=0;i<style_state_list_.size(); i++)
|
||||
for (size_t i=0;i<style_state_list_.size(); i++)
|
||||
{
|
||||
if (style_state_list_[i]->default_ == false) continue;
|
||||
|
||||
@ -290,7 +290,7 @@ bool odf_style_context::find_odf_default_style_state(style_family::type family,
|
||||
|
||||
bool odf_style_context::find_odf_style_state(std::wstring style_name, style_family::type family, odf_style_state_ptr & state)
|
||||
{
|
||||
for (int i=0;i<style_state_list_.size(); i++)
|
||||
for (size_t i = 0; i < style_state_list_.size(); i++)
|
||||
{
|
||||
if (style_state_list_[i]->odf_style_)
|
||||
{
|
||||
@ -308,7 +308,7 @@ bool odf_style_context::find_odf_style_state(std::wstring style_name, style_fami
|
||||
|
||||
bool odf_style_context::find_odf_style(std::wstring style_name, style_family::type family, style *& style_)
|
||||
{
|
||||
for (int i=0;i<style_state_list_.size(); i++)
|
||||
for (size_t i = 0; i < style_state_list_.size(); i++)
|
||||
{
|
||||
if (style_state_list_[i]->odf_style_)
|
||||
{
|
||||
@ -325,7 +325,7 @@ bool odf_style_context::find_odf_style(std::wstring style_name, style_family::ty
|
||||
}
|
||||
office_element_ptr odf_style_context::find_odf_style_default(style_family::type family)
|
||||
{
|
||||
for (int i=0; i < current_default_styles_.size(); i++)
|
||||
for (size_t i=0; i < current_default_styles_.size(); i++)
|
||||
{
|
||||
if (current_default_styles_[i]->odf_style_)
|
||||
{
|
||||
@ -336,7 +336,7 @@ office_element_ptr odf_style_context::find_odf_style_default(style_family::type
|
||||
}
|
||||
std::wstring odf_style_context::find_odf_style_name_default(style_family::type family)
|
||||
{
|
||||
for (int i = 0; i < current_default_styles_.size(); i++)
|
||||
for (size_t i = 0; i < current_default_styles_.size(); i++)
|
||||
{
|
||||
if (current_default_styles_[i]->odf_style_)
|
||||
{
|
||||
@ -390,7 +390,7 @@ std::wstring odf_style_context::find_free_name(style_family::type family)
|
||||
int count = style_family_counts_[(int)family];
|
||||
|
||||
//доооолго .. проще хранить
|
||||
//for (int i=0;i<style_state_list_.size(); i++)
|
||||
//for (size_t i=0;i<style_state_list_.size(); i++)
|
||||
//{
|
||||
// if ((style_state_list_[i]->odf_style_) && (style_state_list_[i]->get_family_type() == family))
|
||||
// {
|
||||
@ -402,7 +402,7 @@ std::wstring odf_style_context::find_free_name(style_family::type family)
|
||||
}
|
||||
office_element_ptr & odf_style_context::add_or_find(std::wstring name, style_family::type family, bool automatic , bool root, int oox_id)
|
||||
{
|
||||
for (int i=0;i<style_state_list_.size(); i++)
|
||||
for (size_t i=0;i<style_state_list_.size(); i++)
|
||||
{
|
||||
if (style_state_list_[i]->odf_style_)
|
||||
{
|
||||
|
||||
@ -172,7 +172,7 @@ void odf_table_context::start_table(office_element_ptr &elm, bool styled)
|
||||
void odf_table_context::end_table()
|
||||
{
|
||||
//последние объединенные по вертикали ячейки ..
|
||||
for (long i =0 ; i < impl_->current_table().columns.size(); i++)
|
||||
for (size_t i =0 ; i < impl_->current_table().columns.size(); i++)
|
||||
{
|
||||
impl_->current_table().current_column = i+1;
|
||||
set_cell_row_span_restart();
|
||||
|
||||
@ -283,7 +283,7 @@ std::wstring ods_table_state::get_column_default_cell_style(int column)
|
||||
{
|
||||
int curr=0;
|
||||
|
||||
for (int i=0; i < columns_.size(); i++)
|
||||
for (size_t i=0; i < columns_.size(); i++)
|
||||
{
|
||||
if (curr + columns_[i].repeated < column + 1)continue;
|
||||
else
|
||||
@ -400,7 +400,7 @@ bool ods_table_state::is_cell_comment()
|
||||
|
||||
int ods_table_state::is_cell_hyperlink(int col, int row)
|
||||
{
|
||||
for (long i=0; i< hyperlinks_.size();i++)
|
||||
for (size_t i=0; i < hyperlinks_.size();i++)
|
||||
{
|
||||
if (hyperlinks_[i].col == col && hyperlinks_[i].row == row)
|
||||
{
|
||||
@ -411,7 +411,7 @@ int ods_table_state::is_cell_hyperlink(int col, int row)
|
||||
}
|
||||
int ods_table_state::is_cell_comment(int col, int row, short repeate_col)
|
||||
{
|
||||
for (long i=0; i< comments_.size();i++)
|
||||
for (size_t i = 0; i < comments_.size(); i++)
|
||||
{
|
||||
if ((comments_[i].col < col+repeate_col && comments_[i].col >= col) && comments_[i].row == row)
|
||||
{
|
||||
@ -590,7 +590,7 @@ void ods_table_state::end_comment(odf_text_context *text_context)
|
||||
{
|
||||
if (text_context == NULL || comments_.size() <1 )return;
|
||||
|
||||
for (long i=0; i< text_context->text_elements_list_.size(); i++)
|
||||
for (size_t i = 0; i < text_context->text_elements_list_.size(); i++)
|
||||
{
|
||||
if (text_context->text_elements_list_[i].level ==0 && comments_.back().elm)
|
||||
{
|
||||
@ -739,7 +739,7 @@ void ods_table_state::add_or_find_cell_shared_formula(std::wstring & formula, st
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i=0; i<shared_formulas_.size() ;i++)
|
||||
for (size_t i = 0; i < shared_formulas_.size() ;i++)
|
||||
{
|
||||
if (shared_formulas_[i].index == ind)
|
||||
{
|
||||
@ -825,7 +825,7 @@ void ods_table_state::add_child_element( const office_element_ptr & child_elemen
|
||||
void ods_table_state::convert_position(oox_table_position & oox_pos, double & x, double & y)//c 0 отсчет
|
||||
{
|
||||
double sz_col=0;
|
||||
int curr_col = 0,i;
|
||||
size_t curr_col = 0, i;
|
||||
|
||||
for (i = 0; i < columns_.size(); i++)
|
||||
{
|
||||
@ -850,7 +850,8 @@ void ods_table_state::convert_position(oox_table_position & oox_pos, double & x,
|
||||
x = sz_col + oox_pos.col_off;
|
||||
|
||||
double sz_row=0;
|
||||
int curr_row =0;
|
||||
|
||||
size_t curr_row =0 ;
|
||||
for (i = 0; i < rows_.size(); i++)
|
||||
{
|
||||
if (oox_pos.row > rows_[i].repeated + curr_row)
|
||||
@ -880,7 +881,7 @@ void ods_table_state::set_cell_text(odf_text_context* text_context, bool cash_va
|
||||
{
|
||||
if (text_context == NULL)return;
|
||||
|
||||
for (long i=0; i< text_context->text_elements_list_.size(); i++)
|
||||
for (size_t i = 0; i< text_context->text_elements_list_.size(); i++)
|
||||
{
|
||||
if (text_context->text_elements_list_[i].level ==0)
|
||||
{
|
||||
|
||||
@ -117,14 +117,14 @@ void odt_conversion_context::start_document()
|
||||
void odt_conversion_context::end_document()
|
||||
{
|
||||
//add sections to root
|
||||
for (long i=0; i< sections_.size(); i++)
|
||||
for (size_t i = 0; i< sections_.size(); i++)
|
||||
{
|
||||
root_document_->add_child_element(sections_[i].elm);
|
||||
}
|
||||
sections_.clear();
|
||||
|
||||
//add last elements to root
|
||||
for (long i=0; i< current_root_elements_.size(); i++)
|
||||
for (size_t i = 0; i< current_root_elements_.size(); i++)
|
||||
{
|
||||
root_document_->add_child_element(current_root_elements_[i].elm);
|
||||
}
|
||||
@ -246,7 +246,7 @@ void odt_conversion_context::end_drawings()
|
||||
bool bSet = false;
|
||||
if (( anchor == anchor_type::Page || anchor == anchor_type::Paragraph) || (is_header_ || is_footer_))
|
||||
{
|
||||
for (long i = text_context()->current_level_.size()-1; i>=0; i--)
|
||||
for (long i = (long)text_context()->current_level_.size() - 1 ; i>=0; i--)
|
||||
{
|
||||
text_p *p = dynamic_cast<text_p*>(text_context()->current_level_[i].elm.get());
|
||||
text_h *h = dynamic_cast<text_h*>(text_context()->current_level_[i].elm.get());
|
||||
@ -513,7 +513,7 @@ void odt_conversion_context::add_section_column(std::vector<std::pair<double,dou
|
||||
if (!columns)return;
|
||||
|
||||
double width_all = 0;
|
||||
for (int i = 0; i < width_space.size() ; i++)
|
||||
for (size_t i = 0; i < width_space.size() ; i++)
|
||||
{
|
||||
if (width_space[i].first >= 0)
|
||||
|
||||
@ -527,7 +527,7 @@ void odt_conversion_context::add_section_column(std::vector<std::pair<double,dou
|
||||
|
||||
section_properties->style_editable_ = false;
|
||||
|
||||
for (int i = 0; i < width_space.size() && width_all > 0 ; i++)
|
||||
for (size_t i = 0; i < width_space.size() && width_all > 0 ; i++)
|
||||
{
|
||||
office_element_ptr col_elm;
|
||||
|
||||
@ -634,7 +634,7 @@ void odt_conversion_context::flush_section()
|
||||
{
|
||||
if (sections_.size() > 0 && sections_.back().empty)
|
||||
{
|
||||
for (long i=0; i< current_root_elements_.size(); i++)
|
||||
for (size_t i=0; i< current_root_elements_.size(); i++)
|
||||
{
|
||||
if ((sections_.back().continuous && i < 2) || !sections_.back().continuous)
|
||||
// при вставлении параграфа возможен искусственный разрыв в параграфах - см add_page_break
|
||||
|
||||
@ -170,6 +170,7 @@ private:
|
||||
|
||||
bool is_header_;
|
||||
bool is_footer_;
|
||||
bool is_background_;
|
||||
|
||||
std::vector<odf_drawing_context_ptr> drawing_context_;
|
||||
std::vector<odf_text_context_ptr> text_context_; //for embedded
|
||||
|
||||
@ -269,7 +269,7 @@ void text_span::add_child_element( const office_element_ptr & child_element)
|
||||
void text_span::add_text(const std::wstring & Text)
|
||||
{
|
||||
int bSpace = true;
|
||||
for (int i = 0 ; i < Text.size() ; i++)
|
||||
for (size_t i = 0 ; i < Text.size() ; i++)
|
||||
{
|
||||
if (Text[i] != 0x20)
|
||||
{
|
||||
@ -306,7 +306,7 @@ void text_a::serialize(std::wostream & _Wostream)
|
||||
CP_XML_ATTR_OPT(L"text:style-name", text_style_name_);
|
||||
CP_XML_ATTR_OPT(L"text:visited-style-name", text_visited_style_name_);
|
||||
|
||||
for (int i = 0; i < paragraph_content_.size(); i++)
|
||||
for (size_t i = 0; i < paragraph_content_.size(); i++)
|
||||
{
|
||||
paragraph_content_[i]->serialize(CP_XML_STREAM());
|
||||
}
|
||||
@ -358,7 +358,7 @@ void text_note_citation::serialize(std::wostream & _Wostream)
|
||||
{
|
||||
CP_XML_ATTR_OPT(L"text:label", text_label_);
|
||||
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->serialize(CP_XML_STREAM());
|
||||
}
|
||||
@ -386,7 +386,7 @@ void text_note_body::serialize(std::wostream & _Wostream)
|
||||
{
|
||||
CP_XML_NODE_SIMPLE()
|
||||
{
|
||||
for (int i = 0; i < content_.size(); i++)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->serialize(CP_XML_STREAM());
|
||||
}
|
||||
|
||||
@ -122,42 +122,47 @@ void style_page_layout_properties_attlist::serialize(CP_ATTR_NODE)
|
||||
}
|
||||
}
|
||||
|
||||
CP_XML_ATTR_OPT (L"fo:page-width", fo_page_width_);
|
||||
CP_XML_ATTR_OPT (L"fo:page-height", fo_page_height_);
|
||||
common_num_format_attlist_.serialize(CP_GET_XML_NODE());
|
||||
common_num_format_prefix_suffix_attlist_.serialize(CP_GET_XML_NODE());
|
||||
CP_XML_ATTR_OPT (L"style:paper-tray-name", style_paper_tray_name_);
|
||||
CP_XML_ATTR_OPT (L"style:print-orientation", style_print_orientation_);
|
||||
CP_XML_ATTR_OPT (L"fo:page-width", fo_page_width_);
|
||||
CP_XML_ATTR_OPT (L"fo:page-height", fo_page_height_);
|
||||
|
||||
common_horizontal_margin_attlist_.serialize(CP_GET_XML_NODE());
|
||||
common_vertical_margin_attlist_.serialize(CP_GET_XML_NODE());
|
||||
common_margin_attlist_.serialize(CP_GET_XML_NODE());
|
||||
common_border_attlist_.serialize(CP_GET_XML_NODE());
|
||||
common_border_line_width_attlist_.serialize(CP_GET_XML_NODE());
|
||||
common_padding_attlist_.serialize(CP_GET_XML_NODE());
|
||||
common_shadow_attlist_.serialize(CP_GET_XML_NODE());
|
||||
common_background_color_attlist_.serialize(CP_GET_XML_NODE());
|
||||
common_num_format_attlist_.serialize (CP_GET_XML_NODE());
|
||||
common_num_format_prefix_suffix_attlist_.serialize (CP_GET_XML_NODE());
|
||||
|
||||
CP_XML_ATTR_OPT (L"style:register-truth-ref-style-name", style_register_truth_ref_style_name_);
|
||||
CP_XML_ATTR_OPT (L"style:print", style_print_);
|
||||
CP_XML_ATTR_OPT (L"style:print-page-order", style_print_page_order_);
|
||||
CP_XML_ATTR_OPT (L"style:first-page-number", style_first_page_number_);
|
||||
CP_XML_ATTR_OPT (L"style:scale-to", style_scale_to_);
|
||||
CP_XML_ATTR_OPT (L"style:scale-to_pages", style_scale_to_pages_);
|
||||
CP_XML_ATTR_OPT (L"style:table-centering", style_table_centering_);
|
||||
CP_XML_ATTR_OPT (L"style:footnote-max-height", style_footnote_max_height_);
|
||||
common_writing_mode_attlist_.serialize(CP_GET_XML_NODE());
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-mode", style_layout_grid_mode_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-base-height", style_layout_grid_base_height_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-ruby-height", style_layout_grid_ruby_height_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-lines", style_layout_grid_lines_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-color", style_layout_grid_color_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-ruby-below", style_layout_grid_ruby_below_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-print", style_layout_grid_print_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-display", style_layout_grid_display_);
|
||||
CP_XML_ATTR_OPT (L"style:paper-tray-name", style_paper_tray_name_);
|
||||
CP_XML_ATTR_OPT (L"style:print-orientation", style_print_orientation_);
|
||||
|
||||
common_horizontal_margin_attlist_.serialize (CP_GET_XML_NODE());
|
||||
common_vertical_margin_attlist_.serialize (CP_GET_XML_NODE());
|
||||
common_margin_attlist_.serialize (CP_GET_XML_NODE());
|
||||
common_border_attlist_.serialize (CP_GET_XML_NODE());
|
||||
common_border_line_width_attlist_.serialize (CP_GET_XML_NODE());
|
||||
common_padding_attlist_.serialize (CP_GET_XML_NODE());
|
||||
common_shadow_attlist_.serialize (CP_GET_XML_NODE());
|
||||
common_background_color_attlist_.serialize (CP_GET_XML_NODE());
|
||||
common_draw_fill_attlist_.serialize (CP_GET_XML_NODE());
|
||||
|
||||
CP_XML_ATTR_OPT (L"style:register-truth-ref-style-name", style_register_truth_ref_style_name_);
|
||||
CP_XML_ATTR_OPT (L"style:print", style_print_);
|
||||
CP_XML_ATTR_OPT (L"style:print-page-order", style_print_page_order_);
|
||||
CP_XML_ATTR_OPT (L"style:first-page-number", style_first_page_number_);
|
||||
CP_XML_ATTR_OPT (L"style:scale-to", style_scale_to_);
|
||||
CP_XML_ATTR_OPT (L"style:scale-to_pages", style_scale_to_pages_);
|
||||
CP_XML_ATTR_OPT (L"style:table-centering", style_table_centering_);
|
||||
CP_XML_ATTR_OPT (L"style:footnote-max-height", style_footnote_max_height_);
|
||||
|
||||
common_writing_mode_attlist_.serialize(CP_GET_XML_NODE());
|
||||
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-mode", style_layout_grid_mode_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-base-height", style_layout_grid_base_height_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-ruby-height", style_layout_grid_ruby_height_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-lines", style_layout_grid_lines_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-color", style_layout_grid_color_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-ruby-below", style_layout_grid_ruby_below_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-print", style_layout_grid_print_);
|
||||
CP_XML_ATTR_OPT (L"style:layout-grid-display", style_layout_grid_display_);
|
||||
}
|
||||
const wchar_t * style_page_layout_properties::ns = L"style";
|
||||
const wchar_t * style_page_layout_properties::name = L"page-layout-properties";
|
||||
const wchar_t * style_page_layout_properties::ns = L"style";
|
||||
const wchar_t * style_page_layout_properties::name = L"page-layout-properties";
|
||||
|
||||
void style_page_layout_properties::create_child_element( const std::wstring & Ns, const std::wstring & Name)
|
||||
{
|
||||
|
||||
@ -62,6 +62,7 @@ public:
|
||||
_CP_OPT(odf_types::length) fo_page_width_;
|
||||
_CP_OPT(odf_types::length) fo_page_height_;
|
||||
|
||||
odf_types::common_draw_fill_attlist common_draw_fill_attlist_;
|
||||
odf_types::common_num_format_attlist common_num_format_attlist_;
|
||||
odf_types::common_num_format_prefix_suffix_attlist common_num_format_prefix_suffix_attlist_;
|
||||
|
||||
|
||||
@ -159,8 +159,8 @@ public:
|
||||
|
||||
std::wstring get_style_name(){return draw_name_.get_value_or(L"");}
|
||||
|
||||
_CP_OPT(odf_types::color) draw_start_color_;
|
||||
_CP_OPT(odf_types::color) draw_end_color_;
|
||||
_CP_OPT(odf_types::color) draw_start_color_;
|
||||
_CP_OPT(odf_types::color) draw_end_color_;
|
||||
|
||||
_CP_OPT(odf_types::percent) draw_end_intensity_;
|
||||
_CP_OPT(odf_types::percent) draw_start_intensity_;
|
||||
@ -169,11 +169,11 @@ public:
|
||||
_CP_OPT(odf_types::percent) draw_cx_;
|
||||
|
||||
_CP_OPT(odf_types::percent) draw_border_;
|
||||
_CP_OPT(int) draw_angle_;
|
||||
_CP_OPT(odf_types::gradient_style) draw_style_;
|
||||
_CP_OPT(int) draw_angle_;
|
||||
_CP_OPT(odf_types::gradient_style) draw_style_;
|
||||
|
||||
_CP_OPT(std::wstring) draw_name_;
|
||||
_CP_OPT(std::wstring) draw_display_name_;
|
||||
_CP_OPT(std::wstring) draw_name_;
|
||||
_CP_OPT(std::wstring) draw_display_name_;
|
||||
|
||||
virtual void create_child_element( const std::wstring & Ns, const std::wstring & Name);
|
||||
virtual void serialize(std::wostream & strm);
|
||||
|
||||
@ -106,7 +106,7 @@ void text_list_style::serialize(std::wostream & strm)
|
||||
{
|
||||
text_list_style_attr_.serialize(CP_GET_XML_NODE());
|
||||
|
||||
for (int i = 0; i < text_list_style_content_.size(); i++)
|
||||
for (size_t i = 0; i < text_list_style_content_.size(); i++)
|
||||
{
|
||||
if (text_list_style_content_[i])
|
||||
text_list_style_content_[i]->serialize(CP_XML_STREAM());
|
||||
|
||||
@ -578,7 +578,7 @@ public:
|
||||
|
||||
virtual void serialize(std::wostream & _Wostream);
|
||||
|
||||
int get_count(){return content_.size();}//временно .. для группировок
|
||||
int get_count(){return (int)content_.size();}//временно .. для группировок
|
||||
|
||||
office_element_ptr_array content_;
|
||||
//int type_;
|
||||
|
||||
@ -80,7 +80,7 @@ void table_database_ranges::serialize(std::wostream & _Wostream)
|
||||
{
|
||||
CP_XML_NODE_SIMPLE()
|
||||
{
|
||||
for (int i = 0; i < database_ranges_.size(); i++)
|
||||
for (size_t i = 0; i < database_ranges_.size(); i++)
|
||||
{
|
||||
database_ranges_[i]->serialize(CP_XML_STREAM());
|
||||
}
|
||||
|
||||
@ -88,11 +88,11 @@ void table_named_expressions::serialize(std::wostream & _Wostream)
|
||||
{
|
||||
CP_XML_NODE_SIMPLE()
|
||||
{
|
||||
for (int i = 0; i < named_expression_.size(); i++)
|
||||
for (size_t i = 0; i < named_expression_.size(); i++)
|
||||
{
|
||||
named_expression_[i]->serialize(CP_XML_STREAM());
|
||||
}
|
||||
for (int i = 0; i < named_range_.size(); i++)
|
||||
for (size_t i = 0; i < named_range_.size(); i++)
|
||||
{
|
||||
named_range_[i]->serialize(CP_XML_STREAM());
|
||||
}
|
||||
|
||||
@ -272,7 +272,7 @@ void text_section::serialize(std::wostream & _Wostream)
|
||||
if (text_section_source_)
|
||||
text_section_source_->serialize(CP_XML_STREAM());
|
||||
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->serialize(CP_XML_STREAM());
|
||||
}
|
||||
@ -321,7 +321,7 @@ void text_index_body::serialize(std::wostream & _Wostream)
|
||||
{
|
||||
CP_XML_NODE_SIMPLE()
|
||||
{
|
||||
for (int i = 0 ; i < index_content_main_.size(); i++)
|
||||
for (size_t i = 0 ; i < index_content_main_.size(); i++)
|
||||
{
|
||||
index_content_main_[i]->serialize(CP_XML_STREAM());
|
||||
}
|
||||
@ -350,7 +350,7 @@ void text_index_title::serialize(std::wostream & _Wostream)
|
||||
{
|
||||
CP_XML_NODE_SIMPLE()
|
||||
{
|
||||
for (int i = 0 ; i < index_content_main_.size(); i++)
|
||||
for (size_t i = 0 ; i < index_content_main_.size(); i++)
|
||||
{
|
||||
index_content_main_[i]->serialize(CP_XML_STREAM());
|
||||
}
|
||||
@ -426,7 +426,7 @@ void text_tracked_changes::serialize(std::wostream & _Wostream)
|
||||
{
|
||||
CP_XML_NODE_SIMPLE()
|
||||
{
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->serialize (CP_XML_STREAM());
|
||||
}
|
||||
@ -446,7 +446,7 @@ void text_insertion::serialize(std::wostream & _Wostream)
|
||||
if (office_change_info_)
|
||||
office_change_info_->serialize(CP_XML_STREAM());
|
||||
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->serialize(CP_XML_STREAM());
|
||||
}
|
||||
@ -466,7 +466,7 @@ void text_deletion::serialize(std::wostream & _Wostream)
|
||||
if (office_change_info_)
|
||||
office_change_info_->serialize(CP_XML_STREAM());
|
||||
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->serialize(CP_XML_STREAM());
|
||||
}
|
||||
@ -489,7 +489,7 @@ void text_format_change::serialize(std::wostream & _Wostream)
|
||||
if (office_change_info_)
|
||||
office_change_info_->serialize(CP_XML_STREAM());
|
||||
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->serialize(CP_XML_STREAM());
|
||||
}
|
||||
@ -525,7 +525,7 @@ void text_unknown_change::serialize(std::wostream & _Wostream)
|
||||
if (office_change_info_)
|
||||
office_change_info_->serialize(CP_XML_STREAM());
|
||||
|
||||
for (int i = 0 ; i < content_.size(); i++)
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->serialize(CP_XML_STREAM());
|
||||
}
|
||||
|
||||
@ -48,8 +48,6 @@
|
||||
#include "../OdfFormat/style_text_properties.h"
|
||||
#include "../OdfFormat/style_paragraph_properties.h"
|
||||
|
||||
#define ARGB(a, r, g, b) ((unsigned int)( ( (unsigned char)(a) )| ( ( (unsigned char)(r) ) << 8 ) | ( ( (unsigned char)(g) ) << 16 ) | ( (unsigned char)(b) << 24 ) ) )
|
||||
|
||||
using namespace cpdoccore;
|
||||
|
||||
namespace Oox2Odf
|
||||
@ -305,9 +303,80 @@ void OoxConverter::convert(PPTX::Logic::PathBase *oox_path)
|
||||
|
||||
}
|
||||
|
||||
void OoxConverter::convert(PPTX::Logic::BlipFill *oox_fill)
|
||||
void OoxConverter::convert(PPTX::Logic::BlipFill *oox_bitmap_fill)
|
||||
{
|
||||
if (!oox_fill) return;
|
||||
if (oox_bitmap_fill == NULL)return;
|
||||
|
||||
odf_context()->drawing_context()->start_bitmap_style();
|
||||
{
|
||||
double Width=0, Height = 0;
|
||||
if (oox_bitmap_fill->blip.IsInit())
|
||||
{
|
||||
std::wstring sID, pathImage;
|
||||
if (oox_bitmap_fill->blip->embed.IsInit())
|
||||
{
|
||||
sID = oox_bitmap_fill->blip->embed->get();
|
||||
pathImage = find_link_by_id(sID,1);
|
||||
|
||||
if (!pathImage.empty())
|
||||
{
|
||||
odf_context()->drawing_context()->set_bitmap_link(pathImage);
|
||||
_graphics_utils_::GetResolution(pathImage.c_str(), Width, Height);
|
||||
}
|
||||
}
|
||||
else if (oox_bitmap_fill->blip->link.IsInit())
|
||||
{
|
||||
sID = pathImage = oox_bitmap_fill->blip->link->get();
|
||||
|
||||
odf_context()->drawing_context()->set_bitmap_link(pathImage);
|
||||
//...
|
||||
}
|
||||
//for (size_t i = 0 ; i < oox_bitmap_fill->blip->m_arrEffects.size(); i++)
|
||||
//{
|
||||
// convert(oox_bitmap_fill->blip->m_arrEffects[i]);
|
||||
//}
|
||||
}
|
||||
if (oox_bitmap_fill->srcRect.IsInit() && Width >0 && Height >0)//часть изображения
|
||||
{
|
||||
odf_context()->drawing_context()->set_image_client_rect_inch(
|
||||
(oox_bitmap_fill->srcRect->l.IsInit() ? XmlUtils::GetInteger(oox_bitmap_fill->srcRect->l.get()) : 0 ) /100. * Width / currentSystemDPI,
|
||||
(oox_bitmap_fill->srcRect->t.IsInit() ? XmlUtils::GetInteger(oox_bitmap_fill->srcRect->t.get()) : 0 ) /100. * Height/ currentSystemDPI,
|
||||
(oox_bitmap_fill->srcRect->r.IsInit() ? XmlUtils::GetInteger(oox_bitmap_fill->srcRect->r.get()) : 0 ) /100. * Width / currentSystemDPI,
|
||||
(oox_bitmap_fill->srcRect->b.IsInit() ? XmlUtils::GetInteger(oox_bitmap_fill->srcRect->b.get()) : 0 ) /100. * Height/ currentSystemDPI);
|
||||
}
|
||||
if (oox_bitmap_fill->tile.IsInit())
|
||||
{
|
||||
odf_context()->drawing_context()->set_image_style_repeat(2);
|
||||
|
||||
if (oox_bitmap_fill->tile->algn.IsInit())
|
||||
odf_context()->drawing_context()->set_bitmap_tile_align(oox_bitmap_fill->tile->algn->GetBYTECode());
|
||||
|
||||
if (oox_bitmap_fill->tile->flip.IsInit()) {}
|
||||
|
||||
if (oox_bitmap_fill->tile->sx.IsInit() && Width >0)
|
||||
{
|
||||
odf_context()->drawing_context()->set_bitmap_tile_scale_x(*oox_bitmap_fill->tile->sx / 100. * Width);
|
||||
}
|
||||
if (oox_bitmap_fill->tile->sy.IsInit()&& Height >0)
|
||||
{
|
||||
odf_context()->drawing_context()->set_bitmap_tile_scale_y(*oox_bitmap_fill->tile->sy / 100. * Height);
|
||||
}
|
||||
if (oox_bitmap_fill->tile->tx.IsInit() && Width >0)
|
||||
{
|
||||
odf_context()->drawing_context()->set_bitmap_tile_translate_x(*oox_bitmap_fill->tile->tx * 100. / Width );
|
||||
}
|
||||
if (oox_bitmap_fill->tile->ty.IsInit() && Height >0)
|
||||
{
|
||||
odf_context()->drawing_context()->set_bitmap_tile_translate_y(*oox_bitmap_fill->tile->ty * 100. / Height );
|
||||
}
|
||||
}
|
||||
if (oox_bitmap_fill->stretch.IsInit())
|
||||
{
|
||||
odf_context()->drawing_context()->set_image_style_repeat(1);
|
||||
if (oox_bitmap_fill->stretch->fillRect.IsInit()){} //заполнение неполного объема
|
||||
}
|
||||
}
|
||||
odf_context()->drawing_context()->end_bitmap_style();
|
||||
}
|
||||
void OoxConverter::convert(PPTX::Logic::GradFill *oox_grad_fill)
|
||||
{
|
||||
|
||||
@ -44,6 +44,7 @@
|
||||
#include "../OdfFormat/style_paragraph_properties.h"
|
||||
|
||||
#include "../../../Common/DocxFormat/Source/DocxFormat/Logic/Vml.h"
|
||||
#include "../../../DesktopEditor/raster/BgraFrame.h"
|
||||
|
||||
#include "VmlShapeTypes2Oox.h"
|
||||
|
||||
@ -63,8 +64,7 @@ void OoxConverter::convert(OOX::Vml::CShapeType *vml_shape_type)
|
||||
if (odf_context()->drawing_context()->m_mapVmlShapeTypes.find( sId ) ==
|
||||
odf_context()->drawing_context()->m_mapVmlShapeTypes.end())
|
||||
{
|
||||
odf_context()->drawing_context()->m_mapVmlShapeTypes.insert(odf_context()->drawing_context()->m_mapVmlShapeTypes.begin(),
|
||||
std::pair<std::wstring, OOX::Vml::CShapeType*>(sId, vml_shape_type));
|
||||
odf_context()->drawing_context()->m_mapVmlShapeTypes.insert(std::make_pair(sId, vml_shape_type));
|
||||
|
||||
}
|
||||
}
|
||||
@ -80,9 +80,9 @@ void OoxConverter::convert(OOX::Vml::CShapeType *vml_shape_type)
|
||||
}
|
||||
|
||||
//o:spt
|
||||
//nullable<std::wstring> m_oAdj;
|
||||
//nullable<SimpleTypes::Vml::CVmlPath> m_oPath;
|
||||
//SimpleTypes::CTrueFalse<SimpleTypes::booleanFalse> m_oMaster;
|
||||
//nullable<std::wstring> m_oAdj;
|
||||
//nullable<SimpleTypes::Vml::CVmlPath> m_oPath;
|
||||
//SimpleTypes::CTrueFalse<SimpleTypes::booleanFalse> m_oMaster;
|
||||
//m_arrItems
|
||||
//CVmlCommonElements
|
||||
}
|
||||
@ -387,6 +387,9 @@ void OoxConverter::convert(OOX::Vml::CArc *vml_arc)
|
||||
void OoxConverter::convert(OOX::Vml::CBackground *vml_background)
|
||||
{
|
||||
if (vml_background == NULL) return;
|
||||
|
||||
OOX::Vml::CVmlCommonElements *vml_common = static_cast<OOX::Vml::CVmlCommonElements *>(vml_background);
|
||||
convert(vml_common);
|
||||
}
|
||||
|
||||
void OoxConverter::convert(OOX::Vml::CFill *vml_fill)
|
||||
@ -395,6 +398,28 @@ void OoxConverter::convert(OOX::Vml::CFill *vml_fill)
|
||||
|
||||
odf_context()->drawing_context()->start_area_properties();
|
||||
|
||||
std::wstring sImagePath;
|
||||
|
||||
_CP_OPT(unsigned int) nRgbColor1, nRgbColor2;
|
||||
_CP_OPT(std::wstring) sRgbColor1, sRgbColor2;
|
||||
|
||||
if (vml_fill->m_oColor.IsInit())
|
||||
{
|
||||
nRgbColor1 = ((unsigned int)(((BYTE)(vml_fill->m_oColor->Get_B())
|
||||
| ((unsigned int)((BYTE)(vml_fill->m_oColor->Get_G()))<<8))
|
||||
| (((unsigned int)(BYTE)(vml_fill->m_oColor->Get_R()))<<16)));
|
||||
|
||||
sRgbColor1 = XmlUtils::IntToString(*nRgbColor1, L"%06X");
|
||||
}
|
||||
|
||||
if (vml_fill->m_oColor2.IsInit())
|
||||
{
|
||||
nRgbColor2 = ((unsigned int)(((BYTE)(vml_fill->m_oColor2->Get_B())
|
||||
| ((unsigned int)((BYTE)(vml_fill->m_oColor2->Get_G()))<<8))
|
||||
| (((unsigned int)(BYTE)(vml_fill->m_oColor2->Get_R()))<<16)));
|
||||
sRgbColor2 = XmlUtils::IntToString(*nRgbColor2, L"%06X");
|
||||
}
|
||||
|
||||
if (vml_fill->m_rId.IsInit())
|
||||
{
|
||||
//bitmap fill
|
||||
@ -402,37 +427,37 @@ void OoxConverter::convert(OOX::Vml::CFill *vml_fill)
|
||||
{
|
||||
double Width=0, Height = 0;
|
||||
std::wstring sID = vml_fill->m_rId->GetValue();
|
||||
std::wstring pathImage = find_link_by_id(sID,1);
|
||||
|
||||
sImagePath = find_link_by_id(sID, 1);
|
||||
|
||||
if (!pathImage.empty())
|
||||
if (!sImagePath.empty())
|
||||
{
|
||||
odf_context()->drawing_context()->set_bitmap_link(pathImage);
|
||||
_graphics_utils_::GetResolution(pathImage.c_str(), Width, Height);
|
||||
odf_context()->drawing_context()->set_bitmap_link( sImagePath );
|
||||
_graphics_utils_::GetResolution( sImagePath.c_str(), Width, Height );
|
||||
}
|
||||
odf_context()->drawing_context()->set_image_style_repeat(1);
|
||||
}
|
||||
odf_context()->drawing_context()->end_bitmap_style();
|
||||
}
|
||||
else
|
||||
|
||||
switch (vml_fill->m_oType.GetValue())
|
||||
{
|
||||
switch (vml_fill->m_oType.GetValue())
|
||||
{
|
||||
case SimpleTypes::filltypeGradient :
|
||||
case SimpleTypes::filltypeGradientCenter :
|
||||
case SimpleTypes::filltypeGradientRadial :
|
||||
case SimpleTypes::filltypeGradientUnscaled:
|
||||
{
|
||||
odf_context()->drawing_context()->start_gradient_style();
|
||||
if (SimpleTypes::filltypeGradient == vml_fill->m_oType.GetValue()) odf_context()->drawing_context()->set_gradient_type(odf_types::gradient_style::linear);
|
||||
if (SimpleTypes::filltypeGradientRadial == vml_fill->m_oType.GetValue()) odf_context()->drawing_context()->set_gradient_type(odf_types::gradient_style::radial);
|
||||
if (SimpleTypes::filltypeGradientCenter == vml_fill->m_oType.GetValue()) odf_context()->drawing_context()->set_gradient_type(odf_types::gradient_style::axial);
|
||||
if (SimpleTypes::filltypeGradientUnscaled == vml_fill->m_oType.GetValue()) odf_context()->drawing_context()->set_gradient_type(odf_types::gradient_style::square);
|
||||
if (SimpleTypes::filltypeGradient == vml_fill->m_oType.GetValue()) odf_context()->drawing_context()->set_gradient_type(odf_types::gradient_style::linear);
|
||||
if (SimpleTypes::filltypeGradientRadial == vml_fill->m_oType.GetValue()) odf_context()->drawing_context()->set_gradient_type(odf_types::gradient_style::radial);
|
||||
if (SimpleTypes::filltypeGradientCenter == vml_fill->m_oType.GetValue()) odf_context()->drawing_context()->set_gradient_type(odf_types::gradient_style::axial);
|
||||
if (SimpleTypes::filltypeGradientUnscaled == vml_fill->m_oType.GetValue()) odf_context()->drawing_context()->set_gradient_type(odf_types::gradient_style::square);
|
||||
|
||||
_CP_OPT(double) no_set;
|
||||
if (vml_fill->m_oColor.IsInit())
|
||||
odf_context()->drawing_context()->set_gradient_start(vml_fill->m_oColor->ToString(), no_set);
|
||||
if (vml_fill->m_oColor2.IsInit())
|
||||
odf_context()->drawing_context()->set_gradient_end(vml_fill->m_oColor2->ToString(), no_set);
|
||||
if (sRgbColor1)
|
||||
odf_context()->drawing_context()->set_gradient_start(*sRgbColor1, no_set);
|
||||
if (sRgbColor2)
|
||||
odf_context()->drawing_context()->set_gradient_end(*sRgbColor2, no_set);
|
||||
|
||||
if (vml_fill->m_oFocusPosition.IsInit())
|
||||
odf_context()->drawing_context()->set_gradient_center(vml_fill->m_oFocusPosition->GetX(), vml_fill->m_oFocusPosition->GetY());
|
||||
@ -441,23 +466,35 @@ void OoxConverter::convert(OOX::Vml::CFill *vml_fill)
|
||||
}break;
|
||||
case SimpleTypes::filltypePattern:
|
||||
{
|
||||
if (!sImagePath.empty())
|
||||
{
|
||||
odf_context()->drawing_context()->set_image_style_repeat(2);
|
||||
|
||||
if (!nRgbColor1)
|
||||
nRgbColor1 = odf_context()->drawing_context()->get_fill_color();
|
||||
|
||||
CBgraFrame bgraFrame;
|
||||
|
||||
bgraFrame.ReColorPatternImage(sImagePath, nRgbColor1.get_value_or(0xffffff), nRgbColor2.get_value_or(0x000000));
|
||||
}
|
||||
else
|
||||
{
|
||||
odf_context()->drawing_context()->start_hatch_style();
|
||||
if (vml_fill->m_oColor2.IsInit())
|
||||
odf_context()->drawing_context()->set_hatch_line_color(vml_fill->m_oColor2->ToString());
|
||||
if (vml_fill->m_oColor.IsInit())
|
||||
odf_context()->drawing_context()->set_hatch_area_color(vml_fill->m_oColor->ToString());
|
||||
if (sRgbColor2)
|
||||
odf_context()->drawing_context()->set_hatch_line_color(*sRgbColor2);
|
||||
if (sRgbColor1)
|
||||
odf_context()->drawing_context()->set_hatch_area_color(*sRgbColor1);
|
||||
else
|
||||
odf_context()->drawing_context()->set_hatch_area_color(L"#ffffff");
|
||||
|
||||
odf_context()->drawing_context()->end_hatch_style();
|
||||
|
||||
}
|
||||
}break;
|
||||
case SimpleTypes::filltypeSolid:
|
||||
default:
|
||||
if (vml_fill->m_oColor.IsInit())
|
||||
odf_context()->drawing_context()->set_solid_fill(vml_fill->m_oColor->ToString());
|
||||
if (sImagePath.empty() && sRgbColor1)
|
||||
odf_context()->drawing_context()->set_solid_fill(*sRgbColor1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
//--------------------------------------------------------------------------------------------------------------------
|
||||
if (vml_fill->m_oOpacity.IsInit() && vml_fill->m_oOpacity2.IsInit() )
|
||||
@ -589,7 +626,7 @@ void OoxConverter::convert(OOX::Vml::CStroke *vml_stroke)
|
||||
if (vml_stroke->m_oColor.IsInit())
|
||||
{
|
||||
std::wstring hexColor = vml_stroke->m_oColor->ToString();
|
||||
if (hexColor.length() < 1)hexColor = L"000000";
|
||||
if (hexColor.empty()) hexColor = L"000000";
|
||||
odf_context()->drawing_context()->set_solid_fill(hexColor);
|
||||
}
|
||||
|
||||
@ -819,9 +856,16 @@ void OoxConverter::convert(OOX::Vml::CVmlCommonElements *vml_common)
|
||||
|
||||
if (oRgbColor)
|
||||
{
|
||||
odf_context()->drawing_context()->start_area_properties();
|
||||
unsigned int nRgbColor = ((unsigned int)(((BYTE)( oRgbColor->Get_B())
|
||||
| ((unsigned int)((BYTE)( oRgbColor->Get_G()))<<8))
|
||||
| (((unsigned int)(BYTE)( oRgbColor->Get_R()))<<16)));
|
||||
|
||||
odf_context()->drawing_context()->set_fill_color(nRgbColor);
|
||||
|
||||
odf_context()->drawing_context()->start_area_properties();
|
||||
odf_context()->drawing_context()->set_solid_fill(oRgbColor->ToString().substr(2));//.Right(6));
|
||||
odf_context()->drawing_context()->end_area_properties();
|
||||
|
||||
delete oRgbColor;
|
||||
}
|
||||
}
|
||||
@ -881,8 +925,8 @@ void OoxConverter::convert(OOX::Vml::CGroup *vml_group)
|
||||
{
|
||||
if (vml->m_oSpt.IsInit())
|
||||
{
|
||||
OOX::Vml::SptType sptType = static_cast<OOX::Vml::SptType>(vml->m_oSpt->GetValue());
|
||||
odf_context()->drawing_context()->start_shape(OOX::Spt2ShapeType(sptType));
|
||||
SimpleTypes::Vml::SptType sptType = static_cast<SimpleTypes::Vml::SptType>(vml->m_oSpt->GetValue());
|
||||
odf_context()->drawing_context()->start_shape(OOX::VmlShapeType2PrstShape(sptType));
|
||||
bSet = true;
|
||||
}
|
||||
else if ((vml->m_oConnectorType.IsInit()) && (vml->m_oConnectorType->GetValue() != SimpleTypes::connectortypeNone))
|
||||
@ -909,9 +953,9 @@ void OoxConverter::convert(OOX::Vml::CGroup *vml_group)
|
||||
case OOX::et_v_shapetype:
|
||||
{
|
||||
OOX::Vml::CShapeType * vml = static_cast<OOX::Vml::CShapeType*>(vml_group->m_arrItems[i]);
|
||||
OOX::Vml::SptType sptType = vml->m_oSpt.IsInit() ? static_cast<OOX::Vml::SptType>(vml->m_oSpt->GetValue()) : OOX::Vml::sptNotPrimitive;
|
||||
SimpleTypes::Vml::SptType sptType = vml->m_oSpt.IsInit() ? static_cast<SimpleTypes::Vml::SptType>(vml->m_oSpt->GetValue()) : SimpleTypes::Vml::sptNotPrimitive;
|
||||
|
||||
odf_context()->drawing_context()->start_shape(OOX::Spt2ShapeType(sptType));
|
||||
odf_context()->drawing_context()->start_shape(OOX::VmlShapeType2PrstShape(sptType));
|
||||
OoxConverter::convert(vml);
|
||||
odf_context()->drawing_context()->end_shape();
|
||||
}break;
|
||||
|
||||
@ -215,11 +215,11 @@ void OoxConverter::convert(OOX::WritingElement *oox_unknown)
|
||||
OOX::Vml::CTextbox *vml = static_cast<OOX::Vml::CTextbox*>(oox_unknown);
|
||||
convert(vml);
|
||||
}break;
|
||||
//case OOX::et_v_background:
|
||||
//{
|
||||
// OOX::Vml::CBackground *vml = static_cast<OOX::Vml::CBackground*>(oox_unknown);
|
||||
// convert(vml);
|
||||
//}break;
|
||||
case OOX::et_v_background:
|
||||
{
|
||||
OOX::Vml::CBackground *vml = static_cast<OOX::Vml::CBackground*>(oox_unknown);
|
||||
convert(vml);
|
||||
}break;
|
||||
case OOX::et_v_path:
|
||||
{
|
||||
OOX::Vml::CPath *vml = static_cast<OOX::Vml::CPath*>(oox_unknown);
|
||||
@ -657,12 +657,12 @@ void OoxConverter::convert(OOX::Drawing::CShapeProperties * oox_spPr, OOX::Dra
|
||||
|
||||
odf_context()->drawing_context()->start_line_properties();
|
||||
{
|
||||
if (oox_spPr->m_oLn.IsInit())
|
||||
convert(oox_spPr->m_oLn.GetPointer()); //CLineProperties
|
||||
else if ((oox_sp_style) && (oox_sp_style->m_oLnRef.getType() == OOX::et_a_lnRef))
|
||||
if ((oox_sp_style) && (oox_sp_style->m_oLnRef.getType() == OOX::et_a_lnRef))
|
||||
{
|
||||
convert(&oox_sp_style->m_oLnRef);
|
||||
}
|
||||
if (oox_spPr->m_oLn.IsInit())
|
||||
convert(oox_spPr->m_oLn.GetPointer()); //CLineProperties
|
||||
}
|
||||
odf_context()->drawing_context()->end_line_properties();
|
||||
//-----------------------------------------------------------------------------------------------------------------------------
|
||||
@ -899,7 +899,7 @@ void OoxConverter::convert(OOX::Drawing::CBlipFillProperties *oox_bitmap_fill, s
|
||||
for (size_t i = 0 ; i < oox_bitmap_fill->m_oBlip->m_arrEffects.size(); i++)
|
||||
convert(oox_bitmap_fill->m_oBlip->m_arrEffects[i]);
|
||||
}
|
||||
if (oox_bitmap_fill->m_oSrcRect.IsInit() && Width >0 && Height >0)//часть изображения
|
||||
if (oox_bitmap_fill->m_oSrcRect.IsInit() && Width > 0 && Height > 0)//часть изображения
|
||||
{
|
||||
odf_context()->drawing_context()->set_image_client_rect_inch(
|
||||
oox_bitmap_fill->m_oSrcRect->m_oL.GetValue() /100. * Width / currentSystemDPI,
|
||||
|
||||
@ -380,7 +380,7 @@ public:
|
||||
OOX::Spreadsheet::IFileContainer *oox_current_child_document_spreadsheet;
|
||||
OOX::IFileContainer *oox_current_child_document;
|
||||
|
||||
void convert (double oox_font_size, cpdoccore::_CP_OPT(cpdoccore::odf_types::font_size) & odf_font_size);
|
||||
void convert (double oox_font_size, _CP_OPT(cpdoccore::odf_types::font_size) & odf_font_size);
|
||||
bool convert (int indexSchemeColor, BYTE& ucA, BYTE& ucG, BYTE& ucB, BYTE& ucR);
|
||||
//.......................................................................................................................
|
||||
void convert(OOX::WritingElement *oox_unknown);
|
||||
@ -418,10 +418,10 @@ public:
|
||||
void convert(OOX::Drawing::CPath2DQuadBezierTo *oox_geom_path);
|
||||
void convert(OOX::Drawing::CPath2DCubicBezierTo *oox_geom_path);
|
||||
void convert(OOX::Drawing::CPath2DClose *oox_geom_path);
|
||||
void convert(OOX::Drawing::CColor *oox_color, std::wstring & hexColor , cpdoccore::_CP_OPT(double) &opacity);
|
||||
void convert(OOX::Drawing::CSchemeColor *oox_ShemeClr, std::wstring & hexString, cpdoccore::_CP_OPT(double) &opacity);
|
||||
void convert(OOX::Drawing::Colors::CColorTransform *oox_ScrgbClr, std::wstring & hexString, cpdoccore::_CP_OPT(double) &opacity);
|
||||
void convert(OOX::Drawing::CSolidColorFillProperties *oox_solid_fill,std::wstring & hexColor , cpdoccore::_CP_OPT(double) &opacity);
|
||||
void convert(OOX::Drawing::CColor *oox_color, std::wstring & hexColor , _CP_OPT(double) &opacity);
|
||||
void convert(OOX::Drawing::CSchemeColor *oox_ShemeClr, std::wstring & hexString, _CP_OPT(double) &opacity);
|
||||
void convert(OOX::Drawing::Colors::CColorTransform *oox_ScrgbClr, std::wstring & hexString, _CP_OPT(double) &opacity);
|
||||
void convert(OOX::Drawing::CSolidColorFillProperties *oox_solid_fill,std::wstring & hexColor , _CP_OPT(double) &opacity);
|
||||
|
||||
void convert(OOX::Drawing::CParagraph *oox_paragraph);
|
||||
void convert(OOX::Drawing::CParagraphProperty *oox_paragraph_pr, cpdoccore::odf_writer::style_paragraph_properties * paragraph_properties);
|
||||
@ -446,7 +446,7 @@ public:
|
||||
void convert(PPTX::Logic::PathBase *oox_path);
|
||||
void convert(PPTX::Logic::BodyPr *oox_bodyPr);
|
||||
void convert(PPTX::Logic::UniFill *oox_fill, PPTX::Logic::ShapeStyle* oox_sp_style = NULL);
|
||||
void convert(PPTX::Logic::UniColor *color, std::wstring & hexString, cpdoccore::_CP_OPT(double) & opacity);
|
||||
void convert(PPTX::Logic::UniColor *color, std::wstring & hexString, _CP_OPT(double) & opacity);
|
||||
void convert(PPTX::Logic::NvSpPr *oox_nvSpPr);
|
||||
void convert(PPTX::Logic::CNvPr *oox_cnvPr);
|
||||
void convert(PPTX::Logic::CNvSpPr *oox_cnvSpPr);
|
||||
|
||||
@ -1676,21 +1676,28 @@ void DocxConverter::convert(OOX::Logic::CBackground *oox_background, int type)
|
||||
{
|
||||
if (oox_background == NULL) return;
|
||||
|
||||
_CP_OPT(odf_types::color) color;
|
||||
convert ( oox_background->m_oColor.GetPointer(),
|
||||
oox_background->m_oThemeColor.GetPointer(),
|
||||
oox_background->m_oThemeTint.GetPointer(),
|
||||
oox_background->m_oThemeShade.GetPointer(), color);
|
||||
|
||||
odt_context->set_background(color, type);
|
||||
|
||||
odt_context->start_drawings();
|
||||
odt_context->drawing_context()->set_background_state(true);
|
||||
odt_context->drawing_context()->start_drawing();
|
||||
|
||||
if (oox_background->m_oDrawing.IsInit())
|
||||
{
|
||||
//подложка
|
||||
convert(oox_background->m_oDrawing.GetPointer());
|
||||
}
|
||||
else
|
||||
else if (oox_background->m_oBackground.IsInit())
|
||||
{
|
||||
//цветовая подложка
|
||||
_CP_OPT(odf_types::color) color;
|
||||
convert ( oox_background->m_oColor.GetPointer(),
|
||||
oox_background->m_oThemeColor.GetPointer(),
|
||||
oox_background->m_oThemeTint.GetPointer(),
|
||||
oox_background->m_oThemeShade.GetPointer(), color);
|
||||
|
||||
odt_context->set_background(color, type);
|
||||
convert(oox_background->m_oBackground.GetPointer());
|
||||
}
|
||||
odt_context->drawing_context()->end_drawing();
|
||||
odt_context->end_drawings();
|
||||
}
|
||||
|
||||
void DocxConverter::convert(ComplexTypes::Word::CFramePr *oox_frame_pr, odf_writer::style_paragraph_properties * paragraph_properties)
|
||||
@ -2457,10 +2464,10 @@ void DocxConverter::convert(OOX::Logic::CPicture* oox_pic)
|
||||
}
|
||||
else if (oox_pic->m_oShapeType.IsInit())
|
||||
{
|
||||
OOX::Vml::SptType sptType = oox_pic->m_oShapeType->m_oSpt.IsInit() ? static_cast<OOX::Vml::SptType>(oox_pic->m_oShapeType->m_oSpt->GetValue()) : OOX::Vml::sptNotPrimitive;
|
||||
SimpleTypes::Vml::SptType sptType = oox_pic->m_oShapeType->m_oSpt.IsInit() ? static_cast<SimpleTypes::Vml::SptType>(oox_pic->m_oShapeType->m_oSpt->GetValue()) : SimpleTypes::Vml::sptNotPrimitive;
|
||||
|
||||
odf_context()->drawing_context()->set_name(std::wstring (L"Custom") + std::to_wstring(sptType));
|
||||
odf_context()->drawing_context()->start_shape(OOX::Spt2ShapeType(sptType));
|
||||
odf_context()->drawing_context()->start_shape(OOX::VmlShapeType2PrstShape(sptType));
|
||||
|
||||
OoxConverter::convert(oox_pic->m_oShape.GetPointer());
|
||||
OoxConverter::convert(oox_pic->m_oShapeType.GetPointer());
|
||||
@ -2474,12 +2481,12 @@ void DocxConverter::convert(OOX::Logic::CPicture* oox_pic)
|
||||
|
||||
if (oox_pic->m_oShape.IsInit())
|
||||
{
|
||||
OOX::Vml::SptType sptType = oox_pic->m_oShape->m_oSpt.IsInit() ? static_cast<OOX::Vml::SptType>(oox_pic->m_oShape->m_oSpt->GetValue()) : OOX::Vml::sptNotPrimitive;
|
||||
SimpleTypes::Vml::SptType sptType = oox_pic->m_oShape->m_oSpt.IsInit() ? static_cast<SimpleTypes::Vml::SptType>(oox_pic->m_oShape->m_oSpt->GetValue()) : SimpleTypes::Vml::sptNotPrimitive;
|
||||
|
||||
if (sptType != OOX::Vml::SptType::sptNotPrimitive)
|
||||
if (sptType != SimpleTypes::Vml::SptType::sptNotPrimitive)
|
||||
{
|
||||
odf_context()->drawing_context()->set_name(std::wstring (L"Custom") + std::to_wstring(sptType));
|
||||
odf_context()->drawing_context()->start_shape(OOX::Spt2ShapeType(sptType));
|
||||
odf_context()->drawing_context()->start_shape(OOX::VmlShapeType2PrstShape(sptType));
|
||||
bSet = true;
|
||||
}
|
||||
else if ((oox_pic->m_oShape->m_oConnectorType.IsInit()) && (oox_pic->m_oShape->m_oConnectorType->GetValue() != SimpleTypes::connectortypeNone))
|
||||
@ -2507,11 +2514,11 @@ void DocxConverter::convert(OOX::Logic::CPicture* oox_pic)
|
||||
{
|
||||
shape_type = it->second;
|
||||
|
||||
sptType = shape_type->m_oSpt.IsInit() ? static_cast<OOX::Vml::SptType>(shape_type->m_oSpt->GetValue()) : OOX::Vml::sptNotPrimitive;
|
||||
sptType = shape_type->m_oSpt.IsInit() ? static_cast<SimpleTypes::Vml::SptType>(shape_type->m_oSpt->GetValue()) : SimpleTypes::Vml::sptNotPrimitive;
|
||||
|
||||
if (!bSet && sptType != OOX::Vml::SptType::sptNotPrimitive)
|
||||
if (!bSet && sptType != SimpleTypes::Vml::SptType::sptNotPrimitive)
|
||||
{
|
||||
odf_context()->drawing_context()->start_shape(OOX::Spt2ShapeType(sptType));
|
||||
odf_context()->drawing_context()->start_shape(OOX::VmlShapeType2PrstShape(sptType));
|
||||
bSet = true;
|
||||
}
|
||||
}
|
||||
@ -2520,8 +2527,8 @@ void DocxConverter::convert(OOX::Logic::CPicture* oox_pic)
|
||||
int pos = oox_pic->m_oShape->m_sType->find(_T("#_x0000_t"));
|
||||
if (pos >= 0)
|
||||
{
|
||||
sptType = (OOX::Vml::SptType)_wtoi(oox_pic->m_oShape->m_sType->substr(pos + 9, oox_pic->m_oShape->m_sType->length() - pos - 9).c_str());
|
||||
odf_context()->drawing_context()->start_shape(OOX::Spt2ShapeType(sptType));
|
||||
sptType = (SimpleTypes::Vml::SptType)_wtoi(oox_pic->m_oShape->m_sType->substr(pos + 9, oox_pic->m_oShape->m_sType->length() - pos - 9).c_str());
|
||||
odf_context()->drawing_context()->start_shape(OOX::VmlShapeType2PrstShape(sptType));
|
||||
bSet = true;
|
||||
}
|
||||
}
|
||||
@ -2563,15 +2570,15 @@ void DocxConverter::convert(OOX::Logic::CObject* oox_obj)
|
||||
bool bSet = false;
|
||||
if (oox_obj->m_oShape.IsInit())
|
||||
{
|
||||
OOX::Vml::SptType sptType = OOX::Vml::SptType::sptNotPrimitive;
|
||||
SimpleTypes::Vml::SptType sptType = SimpleTypes::Vml::SptType::sptNotPrimitive;
|
||||
|
||||
if ((oox_obj->m_oShapeType.IsInit()) && (oox_obj->m_oShapeType->m_oSpt.IsInit()))
|
||||
sptType = static_cast<OOX::Vml::SptType>(oox_obj->m_oShapeType->m_oSpt->GetValue());
|
||||
sptType = static_cast<SimpleTypes::Vml::SptType>(oox_obj->m_oShapeType->m_oSpt->GetValue());
|
||||
|
||||
if (sptType != OOX::Vml::SptType::sptNotPrimitive)
|
||||
if (sptType != SimpleTypes::Vml::SptType::sptNotPrimitive)
|
||||
{
|
||||
odf_context()->drawing_context()->set_name(std::wstring (L"Custom") + std::to_wstring(sptType));
|
||||
odf_context()->drawing_context()->start_shape(OOX::Spt2ShapeType(sptType));
|
||||
odf_context()->drawing_context()->start_shape(OOX::VmlShapeType2PrstShape(sptType));
|
||||
bSet = true;
|
||||
}
|
||||
else if ((oox_obj->m_oShape->m_oConnectorType.IsInit()) && (oox_obj->m_oShape->m_oConnectorType->GetValue() != SimpleTypes::connectortypeNone))
|
||||
|
||||
@ -31,433 +31,221 @@
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../../../Common/DocxFormat/Source/Common/SimpleTypes_Drawing.h"
|
||||
#include "../../../Common/DocxFormat/Source/Common/SimpleTypes_Vml.h"
|
||||
|
||||
namespace OOX
|
||||
{
|
||||
namespace Vml
|
||||
{
|
||||
enum SptType
|
||||
{
|
||||
sptMin = 0,
|
||||
sptNotPrimitive = sptMin,
|
||||
sptRectangle = 1,
|
||||
sptRoundRectangle = 2,
|
||||
sptEllipse = 3,
|
||||
sptDiamond = 4,
|
||||
sptIsocelesTriangle = 5,
|
||||
sptRightTriangle = 6,
|
||||
sptParallelogram = 7,
|
||||
sptTrapezoid = 8,
|
||||
sptHexagon = 9,
|
||||
sptOctagon = 10,
|
||||
sptPlus = 11,
|
||||
sptStar = 12,
|
||||
sptArrow = 13,
|
||||
sptThickArrow = 14,
|
||||
sptHomePlate = 15,
|
||||
sptCube = 16,
|
||||
sptBalloon = 17,
|
||||
sptSeal = 18,
|
||||
sptArc = 19,
|
||||
sptLine = 20,
|
||||
sptPlaque = 21,
|
||||
sptCan = 22,
|
||||
sptDonut = 23,
|
||||
sptTextSimple = 24,
|
||||
sptTextOctagon = 25,
|
||||
sptTextHexagon = 26,
|
||||
sptTextCurve = 27,
|
||||
sptTextWave = 28,
|
||||
sptTextRing = 29,
|
||||
sptTextOnCurve = 30,
|
||||
sptTextOnRing = 31,
|
||||
sptStraightConnector1 = 32,
|
||||
sptBentConnector2 = 33,
|
||||
sptBentConnector3 = 34,
|
||||
sptBentConnector4 = 35,
|
||||
sptBentConnector5 = 36,
|
||||
sptCurvedConnector2 = 37,
|
||||
sptCurvedConnector3 = 38,
|
||||
sptCurvedConnector4 = 39,
|
||||
sptCurvedConnector5 = 40,
|
||||
sptCallout1 = 41,
|
||||
sptCallout2 = 42,
|
||||
sptCallout3 = 43,
|
||||
sptAccentCallout1 = 44,
|
||||
sptAccentCallout2 = 45,
|
||||
sptAccentCallout3 = 46,
|
||||
sptBorderCallout1 = 47,
|
||||
sptBorderCallout2 = 48,
|
||||
sptBorderCallout3 = 49,
|
||||
sptAccentBorderCallout1 = 50,
|
||||
sptAccentBorderCallout2 = 51,
|
||||
sptAccentBorderCallout3 = 52,
|
||||
sptRibbon = 53,
|
||||
sptRibbon2 = 54,
|
||||
sptChevron = 55,
|
||||
sptPentagon = 56,
|
||||
sptNoSmoking = 57,
|
||||
sptSeal8 = 58,
|
||||
sptSeal16 = 59,
|
||||
sptSeal32 = 60,
|
||||
sptWedgeRectCallout = 61,
|
||||
sptWedgeRRectCallout = 62,
|
||||
sptWedgeEllipseCallout = 63,
|
||||
sptWave = 64,
|
||||
sptFoldedCorner = 65,
|
||||
sptLeftArrow = 66,
|
||||
sptDownArrow = 67,
|
||||
sptUpArrow = 68,
|
||||
sptLeftRightArrow = 69,
|
||||
sptUpDownArrow = 70,
|
||||
sptIrregularSeal1 = 71,
|
||||
sptIrregularSeal2 = 72,
|
||||
sptLightningBolt = 73,
|
||||
sptHeart = 74,
|
||||
sptPictureFrame = 75,
|
||||
sptQuadArrow = 76,
|
||||
sptLeftArrowCallout = 77,
|
||||
sptRightArrowCallout = 78,
|
||||
sptUpArrowCallout = 79,
|
||||
sptDownArrowCallout = 80,
|
||||
sptLeftRightArrowCallout = 81,
|
||||
sptUpDownArrowCallout = 82,
|
||||
sptQuadArrowCallout = 83,
|
||||
sptBevel = 84,
|
||||
sptLeftBracket = 85,
|
||||
sptRightBracket = 86,
|
||||
sptLeftBrace = 87,
|
||||
sptRightBrace = 88,
|
||||
sptLeftUpArrow = 89,
|
||||
sptBentUpArrow = 90,
|
||||
sptBentArrow = 91,
|
||||
sptSeal24 = 92,
|
||||
sptStripedRightArrow = 93,
|
||||
sptNotchedRightArrow = 94,
|
||||
sptBlockArc = 95,
|
||||
sptSmileyFace = 96,
|
||||
sptVerticalScroll = 97,
|
||||
sptHorizontalScroll = 98,
|
||||
sptCircularArrow = 99,
|
||||
sptNotchedCircularArrow = 100,
|
||||
sptUturnArrow = 101,
|
||||
sptCurvedRightArrow = 102,
|
||||
sptCurvedLeftArrow = 103,
|
||||
sptCurvedUpArrow = 104,
|
||||
sptCurvedDownArrow = 105,
|
||||
sptCloudCallout = 106,
|
||||
sptEllipseRibbon = 107,
|
||||
sptEllipseRibbon2 = 108,
|
||||
sptFlowChartProcess = 109,
|
||||
sptFlowChartDecision = 110,
|
||||
sptFlowChartInputOutput = 111,
|
||||
sptFlowChartPredefinedProcess = 112,
|
||||
sptFlowChartInternalStorage = 113,
|
||||
sptFlowChartDocument = 114,
|
||||
sptFlowChartMultidocument = 115,
|
||||
sptFlowChartTerminator = 116,
|
||||
sptFlowChartPreparation = 117,
|
||||
sptFlowChartManualInput = 118,
|
||||
sptFlowChartManualOperation = 119,
|
||||
sptFlowChartConnector = 120,
|
||||
sptFlowChartPunchedCard = 121,
|
||||
sptFlowChartPunchedTape = 122,
|
||||
sptFlowChartSummingJunction = 123,
|
||||
sptFlowChartOr = 124,
|
||||
sptFlowChartCollate = 125,
|
||||
sptFlowChartSort = 126,
|
||||
sptFlowChartExtract = 127,
|
||||
sptFlowChartMerge = 128,
|
||||
sptFlowChartOfflineStorage = 129,
|
||||
sptFlowChartOnlineStorage = 130,
|
||||
sptFlowChartMagneticTape = 131,
|
||||
sptFlowChartMagneticDisk = 132,
|
||||
sptFlowChartMagneticDrum = 133,
|
||||
sptFlowChartDisplay = 134,
|
||||
sptFlowChartDelay = 135,
|
||||
sptTextPlainText = 136,
|
||||
sptTextStop = 137,
|
||||
sptTextTriangle = 138,
|
||||
sptTextTriangleInverted = 139,
|
||||
sptTextChevron = 140,
|
||||
sptTextChevronInverted = 141,
|
||||
sptTextRingInside = 142,
|
||||
sptTextRingOutside = 143,
|
||||
sptTextArchUpCurve = 144,
|
||||
sptTextArchDownCurve = 145,
|
||||
sptTextCircleCurve = 146,
|
||||
sptTextButtonCurve = 147,
|
||||
sptTextArchUpPour = 148,
|
||||
sptTextArchDownPour = 149,
|
||||
sptTextCirclePour = 150,
|
||||
sptTextButtonPour = 151,
|
||||
sptTextCurveUp = 152,
|
||||
sptTextCurveDown = 153,
|
||||
sptTextCascadeUp = 154,
|
||||
sptTextCascadeDown = 155,
|
||||
sptTextWave1 = 156,
|
||||
sptTextWave2 = 157,
|
||||
sptTextWave3 = 158,
|
||||
sptTextWave4 = 159,
|
||||
sptTextInflate = 160,
|
||||
sptTextDeflate = 161,
|
||||
sptTextInflateBottom = 162,
|
||||
sptTextDeflateBottom = 163,
|
||||
sptTextInflateTop = 164,
|
||||
sptTextDeflateTop = 165,
|
||||
sptTextDeflateInflate = 166,
|
||||
sptTextDeflateInflateDeflate = 167,
|
||||
sptTextFadeRight = 168,
|
||||
sptTextFadeLeft = 169,
|
||||
sptTextFadeUp = 170,
|
||||
sptTextFadeDown = 171,
|
||||
sptTextSlantUp = 172,
|
||||
sptTextSlantDown = 173,
|
||||
sptTextCanUp = 174,
|
||||
sptTextCanDown = 175,
|
||||
sptFlowChartAlternateProcess = 176,
|
||||
sptFlowChartOffpageConnector = 177,
|
||||
sptCallout90 = 178,
|
||||
sptAccentCallout90 = 179,
|
||||
sptBorderCallout90 = 180,
|
||||
sptAccentBorderCallout90 = 181,
|
||||
sptLeftRightUpArrow = 182,
|
||||
sptSun = 183,
|
||||
sptMoon = 184,
|
||||
sptBracketPair = 185,
|
||||
sptBracePair = 186,
|
||||
sptSeal4 = 187,
|
||||
sptDoubleWave = 188,
|
||||
sptActionButtonBlank = 189,
|
||||
sptActionButtonHome = 190,
|
||||
sptActionButtonHelp = 191,
|
||||
sptActionButtonInformation = 192,
|
||||
sptActionButtonForwardNext = 193,
|
||||
sptActionButtonBackPrevious = 194,
|
||||
sptActionButtonEnd = 195,
|
||||
sptActionButtonBeginning = 196,
|
||||
sptActionButtonReturn = 197,
|
||||
sptActionButtonDocument = 198,
|
||||
sptActionButtonSound = 199,
|
||||
sptActionButtonMovie = 200,
|
||||
sptHostControl = 201,
|
||||
sptTextBox = 202,
|
||||
sptMax,
|
||||
sptNil = 0x0FFF
|
||||
};
|
||||
}
|
||||
int static Spt2ShapeType(Vml::SptType type)
|
||||
static int VmlShapeType2PrstShape(SimpleTypes::Vml::SptType type)
|
||||
{
|
||||
switch(type)
|
||||
{
|
||||
//case Vml::sptMin = 0,
|
||||
//case Vml::sptNotPrimitive = case Vml::sptMin,
|
||||
case Vml::sptRectangle : return SimpleTypes::shapetypeRect ;
|
||||
case Vml::sptRoundRectangle : return SimpleTypes::shapetypeRoundRect ;
|
||||
case Vml::sptEllipse : return SimpleTypes::shapetypeEllipse ;
|
||||
case Vml::sptDiamond : return SimpleTypes::shapetypeDiamond ;
|
||||
case Vml::sptIsocelesTriangle : return SimpleTypes::shapetypeTriangle ;
|
||||
case Vml::sptRightTriangle : return SimpleTypes::shapetypeRtTriangle ;
|
||||
case Vml::sptParallelogram : return SimpleTypes::shapetypeParallelogram ;
|
||||
case Vml::sptTrapezoid : return SimpleTypes::shapetypeTrapezoid ;
|
||||
case Vml::sptHexagon : return SimpleTypes::shapetypeHexagon ;
|
||||
case Vml::sptOctagon : return SimpleTypes::shapetypeOctagon ;
|
||||
case Vml::sptPlus : return SimpleTypes::shapetypePlus ;
|
||||
case Vml::sptStar : return SimpleTypes::shapetypeStar5 ;
|
||||
case Vml::sptArrow : return SimpleTypes::shapetypeRightArrow ; //???
|
||||
case Vml::sptThickArrow : return SimpleTypes::shapetypeThickArrow ;
|
||||
case Vml::sptHomePlate : return SimpleTypes::shapetypeHomePlate ;
|
||||
case Vml::sptCube : return SimpleTypes::shapetypeCube ;
|
||||
case Vml::sptBalloon : return SimpleTypes::shapetypeBallon ;
|
||||
case Vml::sptSeal : return SimpleTypes::shapetypeIrregularSeal1 ;
|
||||
case Vml::sptArc : return SimpleTypes::shapetypeArc ;
|
||||
case Vml::sptLine : return SimpleTypes::shapetypeLine ;
|
||||
case Vml::sptPlaque : return SimpleTypes::shapetypePlaque ;
|
||||
case Vml::sptCan : return SimpleTypes::shapetypeCan ;
|
||||
case Vml::sptDonut : return SimpleTypes::shapetypeDonut ;
|
||||
//case Vml::sptTextSimple : return SimpleTypes::shapetypeTextSimple ;
|
||||
//case Vml::sptTextOctagon : return SimpleTypes::shapetypeTextOctagon ;
|
||||
//case Vml::sptTextHexagon : return SimpleTypes::shapetypeTextHexagon ;
|
||||
//case Vml::sptTextCurve : return SimpleTypes::shapetypeTextCurve ;
|
||||
//case Vml::sptTextWave : return SimpleTypes::shapetypeTextWave ;
|
||||
//case Vml::sptTextRing : return SimpleTypes::shapetypeTextRing ;
|
||||
//case Vml::sptTextOnCurve : return SimpleTypes::shapetypeTextOnCurve ;
|
||||
//case Vml::sptTextOnRing : return SimpleTypes::shapetypeTextOnRing ;
|
||||
case Vml::sptStraightConnector1 : return SimpleTypes::shapetypeStraightConnector1 ;
|
||||
case Vml::sptBentConnector2 : return SimpleTypes::shapetypeBentConnector2 ;
|
||||
case Vml::sptBentConnector3 : return SimpleTypes::shapetypeBentConnector3 ;
|
||||
case Vml::sptBentConnector4 : return SimpleTypes::shapetypeBentConnector4 ;
|
||||
case Vml::sptBentConnector5 : return SimpleTypes::shapetypeBentConnector5 ;
|
||||
case Vml::sptCurvedConnector2 : return SimpleTypes::shapetypeCurvedConnector2 ;
|
||||
case Vml::sptCurvedConnector3 : return SimpleTypes::shapetypeCurvedConnector3 ;
|
||||
case Vml::sptCurvedConnector4 : return SimpleTypes::shapetypeCurvedConnector4 ;
|
||||
case Vml::sptCurvedConnector5 : return SimpleTypes::shapetypeCurvedConnector5 ;
|
||||
case Vml::sptCallout1 : return SimpleTypes::shapetypeCallout1 ;
|
||||
case Vml::sptCallout2 : return SimpleTypes::shapetypeCallout2 ;
|
||||
case Vml::sptCallout3 : return SimpleTypes::shapetypeCallout3 ;
|
||||
case Vml::sptAccentCallout1 : return SimpleTypes::shapetypeAccentCallout1 ;
|
||||
case Vml::sptAccentCallout2 : return SimpleTypes::shapetypeAccentCallout2 ;
|
||||
case Vml::sptAccentCallout3 : return SimpleTypes::shapetypeAccentCallout3 ;
|
||||
case Vml::sptBorderCallout1 : return SimpleTypes::shapetypeAccentCallout1 ;
|
||||
case Vml::sptBorderCallout2 : return SimpleTypes::shapetypeAccentCallout2 ;
|
||||
case Vml::sptBorderCallout3 : return SimpleTypes::shapetypeAccentCallout3 ;
|
||||
case Vml::sptAccentBorderCallout1 : return SimpleTypes::shapetypeAccentBorderCallout1 ;
|
||||
case Vml::sptAccentBorderCallout2 : return SimpleTypes::shapetypeAccentBorderCallout2 ;
|
||||
case Vml::sptAccentBorderCallout3 : return SimpleTypes::shapetypeAccentBorderCallout3 ;
|
||||
case Vml::sptRibbon : return SimpleTypes::shapetypeRibbon ;
|
||||
case Vml::sptRibbon2 : return SimpleTypes::shapetypeRibbon2 ;
|
||||
case Vml::sptChevron : return SimpleTypes::shapetypeChevron ;
|
||||
case Vml::sptPentagon : return SimpleTypes::shapetypePentagon ;
|
||||
case Vml::sptNoSmoking : return SimpleTypes::shapetypeNoSmoking ;
|
||||
case Vml::sptSeal8 : return SimpleTypes::shapetypeStar8 ;
|
||||
case Vml::sptSeal16 : return SimpleTypes::shapetypeStar16 ;
|
||||
case Vml::sptSeal32 : return SimpleTypes::shapetypeStar32 ;
|
||||
case Vml::sptWedgeRectCallout : return SimpleTypes::shapetypeWedgeRectCallout ;
|
||||
case Vml::sptWedgeRRectCallout : return SimpleTypes::shapetypeWedgeRoundRectCallout ;
|
||||
case Vml::sptWedgeEllipseCallout : return SimpleTypes::shapetypeWedgeEllipseCallout ;
|
||||
case Vml::sptWave : return SimpleTypes::shapetypeWave ;
|
||||
case Vml::sptFoldedCorner : return SimpleTypes::shapetypeFoldedCorner ;
|
||||
case Vml::sptLeftArrow : return SimpleTypes::shapetypeLeftArrow ;
|
||||
case Vml::sptDownArrow : return SimpleTypes::shapetypeDownArrow ;
|
||||
case Vml::sptUpArrow : return SimpleTypes::shapetypeUpArrow ;
|
||||
case Vml::sptLeftRightArrow : return SimpleTypes::shapetypeLeftRightArrow ;
|
||||
case Vml::sptUpDownArrow : return SimpleTypes::shapetypeUpDownArrow ;
|
||||
case Vml::sptIrregularSeal1 : return SimpleTypes::shapetypeIrregularSeal1 ;
|
||||
case Vml::sptIrregularSeal2 : return SimpleTypes::shapetypeIrregularSeal2 ;
|
||||
case Vml::sptLightningBolt : return SimpleTypes::shapetypeLightningBolt ;
|
||||
case Vml::sptHeart : return SimpleTypes::shapetypeHeart ;
|
||||
case Vml::sptPictureFrame : return 3000;//SimpleTypes::shapetypeFrame ; SimpleTypes::shapetypeRect ;//
|
||||
case Vml::sptQuadArrow : return SimpleTypes::shapetypeQuadArrow ;
|
||||
case Vml::sptLeftArrowCallout : return SimpleTypes::shapetypeLeftArrowCallout ;
|
||||
case Vml::sptRightArrowCallout : return SimpleTypes::shapetypeRightArrowCallout ;
|
||||
case Vml::sptUpArrowCallout : return SimpleTypes::shapetypeUpArrowCallout ;
|
||||
case Vml::sptDownArrowCallout : return SimpleTypes::shapetypeDownArrowCallout ;
|
||||
case Vml::sptLeftRightArrowCallout : return SimpleTypes::shapetypeLeftRightArrowCallout ;
|
||||
case Vml::sptUpDownArrowCallout : return SimpleTypes::shapetypeUpDownArrowCallout ;
|
||||
case Vml::sptQuadArrowCallout : return SimpleTypes::shapetypeQuadArrowCallout ;
|
||||
case Vml::sptBevel : return SimpleTypes::shapetypeBevel ;
|
||||
case Vml::sptLeftBracket : return SimpleTypes::shapetypeLeftBracket ;
|
||||
case Vml::sptRightBracket : return SimpleTypes::shapetypeRightBracket ;
|
||||
case Vml::sptLeftBrace : return SimpleTypes::shapetypeLeftBrace ;
|
||||
case Vml::sptRightBrace : return SimpleTypes::shapetypeRightBrace ;
|
||||
case Vml::sptLeftUpArrow : return SimpleTypes::shapetypeLeftUpArrow ;
|
||||
case Vml::sptBentUpArrow : return SimpleTypes::shapetypeBentUpArrow ;
|
||||
case Vml::sptBentArrow : return SimpleTypes::shapetypeBentArrow ;
|
||||
case Vml::sptSeal24 : return SimpleTypes::shapetypeStar24 ;
|
||||
case Vml::sptStripedRightArrow : return SimpleTypes::shapetypeStripedRightArrow ;
|
||||
case Vml::sptNotchedRightArrow : return SimpleTypes::shapetypeNotchedRightArrow ;
|
||||
case Vml::sptBlockArc : return SimpleTypes::shapetypeBlockArc ;
|
||||
case Vml::sptSmileyFace : return SimpleTypes::shapetypeSmileyFace ;
|
||||
case Vml::sptVerticalScroll : return SimpleTypes::shapetypeVerticalScroll ;
|
||||
case Vml::sptHorizontalScroll : return SimpleTypes::shapetypeHorizontalScroll ;
|
||||
case Vml::sptCircularArrow : return SimpleTypes::shapetypeCircularArrow ;
|
||||
//case Vml::sptNotchedCircularArrow : return SimpleTypes::shapetypeNotchedCircularArrow ;
|
||||
case Vml::sptUturnArrow : return SimpleTypes::shapetypeUturnArrow ;
|
||||
case Vml::sptCurvedRightArrow : return SimpleTypes::shapetypeCurvedRightArrow ;
|
||||
case Vml::sptCurvedLeftArrow : return SimpleTypes::shapetypeCurvedLeftArrow ;
|
||||
case Vml::sptCurvedUpArrow : return SimpleTypes::shapetypeCurvedUpArrow ;
|
||||
case Vml::sptCurvedDownArrow : return SimpleTypes::shapetypeCurvedDownArrow ;
|
||||
case Vml::sptCloudCallout : return SimpleTypes::shapetypeCloudCallout ;
|
||||
case Vml::sptEllipseRibbon : return SimpleTypes::shapetypeEllipseRibbon ;
|
||||
case Vml::sptEllipseRibbon2 : return SimpleTypes::shapetypeEllipseRibbon2 ;
|
||||
case Vml::sptFlowChartProcess : return SimpleTypes::shapetypeFlowChartProcess ;
|
||||
case Vml::sptFlowChartDecision : return SimpleTypes::shapetypeFlowChartDecision ;
|
||||
case Vml::sptFlowChartInputOutput : return SimpleTypes::shapetypeFlowChartInputOutput ;
|
||||
case Vml::sptFlowChartPredefinedProcess:return SimpleTypes::shapetypeFlowChartPredefinedProcess ;
|
||||
case Vml::sptFlowChartInternalStorage : return SimpleTypes::shapetypeFlowChartInternalStorage ;
|
||||
case Vml::sptFlowChartDocument : return SimpleTypes::shapetypeFlowChartDocument ;
|
||||
case Vml::sptFlowChartMultidocument : return SimpleTypes::shapetypeFlowChartMultidocument ;
|
||||
case Vml::sptFlowChartTerminator : return SimpleTypes::shapetypeFlowChartTerminator ;
|
||||
case Vml::sptFlowChartPreparation : return SimpleTypes::shapetypeFlowChartPreparation ;
|
||||
case Vml::sptFlowChartManualInput : return SimpleTypes::shapetypeFlowChartManualInput ;
|
||||
case Vml::sptFlowChartManualOperation : return SimpleTypes::shapetypeFlowChartManualOperation ;
|
||||
case Vml::sptFlowChartConnector : return SimpleTypes::shapetypeFlowChartConnector ;
|
||||
case Vml::sptFlowChartPunchedCard : return SimpleTypes::shapetypeFlowChartPunchedCard ;
|
||||
case Vml::sptFlowChartPunchedTape : return SimpleTypes::shapetypeFlowChartPunchedTape ;
|
||||
case Vml::sptFlowChartSummingJunction : return SimpleTypes::shapetypeFlowChartSummingJunction ;
|
||||
case Vml::sptFlowChartOr : return SimpleTypes::shapetypeFlowChartOr ;
|
||||
case Vml::sptFlowChartCollate : return SimpleTypes::shapetypeFlowChartCollate ;
|
||||
case Vml::sptFlowChartSort : return SimpleTypes::shapetypeFlowChartSort ;
|
||||
case Vml::sptFlowChartExtract : return SimpleTypes::shapetypeFlowChartExtract ;
|
||||
case Vml::sptFlowChartMerge : return SimpleTypes::shapetypeFlowChartMerge ;
|
||||
//case Vml::sptFlowChartOfflineStorage : return SimpleTypes::shapetypeChartOfflineStorage ;
|
||||
case Vml::sptFlowChartOnlineStorage : return SimpleTypes::shapetypeFlowChartOnlineStorage ;
|
||||
case Vml::sptFlowChartMagneticTape : return SimpleTypes::shapetypeFlowChartMagneticTape ;
|
||||
case Vml::sptFlowChartMagneticDisk : return SimpleTypes::shapetypeFlowChartMagneticDisk ;
|
||||
case Vml::sptFlowChartMagneticDrum : return SimpleTypes::shapetypeFlowChartMagneticDrum ;
|
||||
case Vml::sptFlowChartDisplay : return SimpleTypes::shapetypeFlowChartDisplay ;
|
||||
case Vml::sptFlowChartDelay : return SimpleTypes::shapetypeFlowChartDelay ;
|
||||
//case SimpleTypes::Vml::sptMin = 0,
|
||||
//case SimpleTypes::Vml::sptNotPrimitive = case SimpleTypes::Vml::sptMin,
|
||||
case SimpleTypes::Vml::sptRectangle : return SimpleTypes::shapetypeRect ;
|
||||
case SimpleTypes::Vml::sptRoundRectangle : return SimpleTypes::shapetypeRoundRect ;
|
||||
case SimpleTypes::Vml::sptEllipse : return SimpleTypes::shapetypeEllipse ;
|
||||
case SimpleTypes::Vml::sptDiamond : return SimpleTypes::shapetypeDiamond ;
|
||||
case SimpleTypes::Vml::sptIsocelesTriangle : return SimpleTypes::shapetypeTriangle ;
|
||||
case SimpleTypes::Vml::sptRightTriangle : return SimpleTypes::shapetypeRtTriangle ;
|
||||
case SimpleTypes::Vml::sptParallelogram : return SimpleTypes::shapetypeParallelogram ;
|
||||
case SimpleTypes::Vml::sptTrapezoid : return SimpleTypes::shapetypeTrapezoid ;
|
||||
case SimpleTypes::Vml::sptHexagon : return SimpleTypes::shapetypeHexagon ;
|
||||
case SimpleTypes::Vml::sptOctagon : return SimpleTypes::shapetypeOctagon ;
|
||||
case SimpleTypes::Vml::sptPlus : return SimpleTypes::shapetypePlus ;
|
||||
case SimpleTypes::Vml::sptStar : return SimpleTypes::shapetypeStar5 ;
|
||||
case SimpleTypes::Vml::sptArrow : return SimpleTypes::shapetypeRightArrow ; //???
|
||||
case SimpleTypes::Vml::sptThickArrow : return SimpleTypes::shapetypeThickArrow ;
|
||||
case SimpleTypes::Vml::sptHomePlate : return SimpleTypes::shapetypeHomePlate ;
|
||||
case SimpleTypes::Vml::sptCube : return SimpleTypes::shapetypeCube ;
|
||||
case SimpleTypes::Vml::sptBalloon : return SimpleTypes::shapetypeBallon ;
|
||||
case SimpleTypes::Vml::sptSeal : return SimpleTypes::shapetypeIrregularSeal1 ;
|
||||
case SimpleTypes::Vml::sptArc : return SimpleTypes::shapetypeArc ;
|
||||
case SimpleTypes::Vml::sptLine : return SimpleTypes::shapetypeLine ;
|
||||
case SimpleTypes::Vml::sptPlaque : return SimpleTypes::shapetypePlaque ;
|
||||
case SimpleTypes::Vml::sptCan : return SimpleTypes::shapetypeCan ;
|
||||
case SimpleTypes::Vml::sptDonut : return SimpleTypes::shapetypeDonut ;
|
||||
//case SimpleTypes::Vml::sptTextSimple : return SimpleTypes::shapetypeTextSimple ;
|
||||
//case SimpleTypes::Vml::sptTextOctagon : return SimpleTypes::shapetypeTextOctagon ;
|
||||
//case SimpleTypes::Vml::sptTextHexagon : return SimpleTypes::shapetypeTextHexagon ;
|
||||
//case SimpleTypes::Vml::sptTextCurve : return SimpleTypes::shapetypeTextCurve ;
|
||||
//case SimpleTypes::Vml::sptTextWave : return SimpleTypes::shapetypeTextWave ;
|
||||
//case SimpleTypes::Vml::sptTextRing : return SimpleTypes::shapetypeTextRing ;
|
||||
//case SimpleTypes::Vml::sptTextOnCurve : return SimpleTypes::shapetypeTextOnCurve ;
|
||||
//case SimpleTypes::Vml::sptTextOnRing : return SimpleTypes::shapetypeTextOnRing ;
|
||||
case SimpleTypes::Vml::sptStraightConnector1 : return SimpleTypes::shapetypeStraightConnector1 ;
|
||||
case SimpleTypes::Vml::sptBentConnector2 : return SimpleTypes::shapetypeBentConnector2 ;
|
||||
case SimpleTypes::Vml::sptBentConnector3 : return SimpleTypes::shapetypeBentConnector3 ;
|
||||
case SimpleTypes::Vml::sptBentConnector4 : return SimpleTypes::shapetypeBentConnector4 ;
|
||||
case SimpleTypes::Vml::sptBentConnector5 : return SimpleTypes::shapetypeBentConnector5 ;
|
||||
case SimpleTypes::Vml::sptCurvedConnector2 : return SimpleTypes::shapetypeCurvedConnector2 ;
|
||||
case SimpleTypes::Vml::sptCurvedConnector3 : return SimpleTypes::shapetypeCurvedConnector3 ;
|
||||
case SimpleTypes::Vml::sptCurvedConnector4 : return SimpleTypes::shapetypeCurvedConnector4 ;
|
||||
case SimpleTypes::Vml::sptCurvedConnector5 : return SimpleTypes::shapetypeCurvedConnector5 ;
|
||||
case SimpleTypes::Vml::sptCallout1 : return SimpleTypes::shapetypeCallout1 ;
|
||||
case SimpleTypes::Vml::sptCallout2 : return SimpleTypes::shapetypeCallout2 ;
|
||||
case SimpleTypes::Vml::sptCallout3 : return SimpleTypes::shapetypeCallout3 ;
|
||||
case SimpleTypes::Vml::sptAccentCallout1 : return SimpleTypes::shapetypeAccentCallout1 ;
|
||||
case SimpleTypes::Vml::sptAccentCallout2 : return SimpleTypes::shapetypeAccentCallout2 ;
|
||||
case SimpleTypes::Vml::sptAccentCallout3 : return SimpleTypes::shapetypeAccentCallout3 ;
|
||||
case SimpleTypes::Vml::sptBorderCallout1 : return SimpleTypes::shapetypeAccentCallout1 ;
|
||||
case SimpleTypes::Vml::sptBorderCallout2 : return SimpleTypes::shapetypeAccentCallout2 ;
|
||||
case SimpleTypes::Vml::sptBorderCallout3 : return SimpleTypes::shapetypeAccentCallout3 ;
|
||||
case SimpleTypes::Vml::sptAccentBorderCallout1 : return SimpleTypes::shapetypeAccentBorderCallout1 ;
|
||||
case SimpleTypes::Vml::sptAccentBorderCallout2 : return SimpleTypes::shapetypeAccentBorderCallout2 ;
|
||||
case SimpleTypes::Vml::sptAccentBorderCallout3 : return SimpleTypes::shapetypeAccentBorderCallout3 ;
|
||||
case SimpleTypes::Vml::sptRibbon : return SimpleTypes::shapetypeRibbon ;
|
||||
case SimpleTypes::Vml::sptRibbon2 : return SimpleTypes::shapetypeRibbon2 ;
|
||||
case SimpleTypes::Vml::sptChevron : return SimpleTypes::shapetypeChevron ;
|
||||
case SimpleTypes::Vml::sptPentagon : return SimpleTypes::shapetypePentagon ;
|
||||
case SimpleTypes::Vml::sptNoSmoking : return SimpleTypes::shapetypeNoSmoking ;
|
||||
case SimpleTypes::Vml::sptSeal8 : return SimpleTypes::shapetypeStar8 ;
|
||||
case SimpleTypes::Vml::sptSeal16 : return SimpleTypes::shapetypeStar16 ;
|
||||
case SimpleTypes::Vml::sptSeal32 : return SimpleTypes::shapetypeStar32 ;
|
||||
case SimpleTypes::Vml::sptWedgeRectCallout : return SimpleTypes::shapetypeWedgeRectCallout ;
|
||||
case SimpleTypes::Vml::sptWedgeRRectCallout : return SimpleTypes::shapetypeWedgeRoundRectCallout ;
|
||||
case SimpleTypes::Vml::sptWedgeEllipseCallout : return SimpleTypes::shapetypeWedgeEllipseCallout ;
|
||||
case SimpleTypes::Vml::sptWave : return SimpleTypes::shapetypeWave ;
|
||||
case SimpleTypes::Vml::sptFoldedCorner : return SimpleTypes::shapetypeFoldedCorner ;
|
||||
case SimpleTypes::Vml::sptLeftArrow : return SimpleTypes::shapetypeLeftArrow ;
|
||||
case SimpleTypes::Vml::sptDownArrow : return SimpleTypes::shapetypeDownArrow ;
|
||||
case SimpleTypes::Vml::sptUpArrow : return SimpleTypes::shapetypeUpArrow ;
|
||||
case SimpleTypes::Vml::sptLeftRightArrow : return SimpleTypes::shapetypeLeftRightArrow ;
|
||||
case SimpleTypes::Vml::sptUpDownArrow : return SimpleTypes::shapetypeUpDownArrow ;
|
||||
case SimpleTypes::Vml::sptIrregularSeal1 : return SimpleTypes::shapetypeIrregularSeal1 ;
|
||||
case SimpleTypes::Vml::sptIrregularSeal2 : return SimpleTypes::shapetypeIrregularSeal2 ;
|
||||
case SimpleTypes::Vml::sptLightningBolt : return SimpleTypes::shapetypeLightningBolt ;
|
||||
case SimpleTypes::Vml::sptHeart : return SimpleTypes::shapetypeHeart ;
|
||||
case SimpleTypes::Vml::sptPictureFrame : return 3000;//SimpleTypes::shapetypeFrame ; SimpleTypes::shapetypeRect ;//
|
||||
case SimpleTypes::Vml::sptQuadArrow : return SimpleTypes::shapetypeQuadArrow ;
|
||||
case SimpleTypes::Vml::sptLeftArrowCallout : return SimpleTypes::shapetypeLeftArrowCallout ;
|
||||
case SimpleTypes::Vml::sptRightArrowCallout : return SimpleTypes::shapetypeRightArrowCallout ;
|
||||
case SimpleTypes::Vml::sptUpArrowCallout : return SimpleTypes::shapetypeUpArrowCallout ;
|
||||
case SimpleTypes::Vml::sptDownArrowCallout : return SimpleTypes::shapetypeDownArrowCallout ;
|
||||
case SimpleTypes::Vml::sptLeftRightArrowCallout : return SimpleTypes::shapetypeLeftRightArrowCallout ;
|
||||
case SimpleTypes::Vml::sptUpDownArrowCallout : return SimpleTypes::shapetypeUpDownArrowCallout ;
|
||||
case SimpleTypes::Vml::sptQuadArrowCallout : return SimpleTypes::shapetypeQuadArrowCallout ;
|
||||
case SimpleTypes::Vml::sptBevel : return SimpleTypes::shapetypeBevel ;
|
||||
case SimpleTypes::Vml::sptLeftBracket : return SimpleTypes::shapetypeLeftBracket ;
|
||||
case SimpleTypes::Vml::sptRightBracket : return SimpleTypes::shapetypeRightBracket ;
|
||||
case SimpleTypes::Vml::sptLeftBrace : return SimpleTypes::shapetypeLeftBrace ;
|
||||
case SimpleTypes::Vml::sptRightBrace : return SimpleTypes::shapetypeRightBrace ;
|
||||
case SimpleTypes::Vml::sptLeftUpArrow : return SimpleTypes::shapetypeLeftUpArrow ;
|
||||
case SimpleTypes::Vml::sptBentUpArrow : return SimpleTypes::shapetypeBentUpArrow ;
|
||||
case SimpleTypes::Vml::sptBentArrow : return SimpleTypes::shapetypeBentArrow ;
|
||||
case SimpleTypes::Vml::sptSeal24 : return SimpleTypes::shapetypeStar24 ;
|
||||
case SimpleTypes::Vml::sptStripedRightArrow : return SimpleTypes::shapetypeStripedRightArrow ;
|
||||
case SimpleTypes::Vml::sptNotchedRightArrow : return SimpleTypes::shapetypeNotchedRightArrow ;
|
||||
case SimpleTypes::Vml::sptBlockArc : return SimpleTypes::shapetypeBlockArc ;
|
||||
case SimpleTypes::Vml::sptSmileyFace : return SimpleTypes::shapetypeSmileyFace ;
|
||||
case SimpleTypes::Vml::sptVerticalScroll : return SimpleTypes::shapetypeVerticalScroll ;
|
||||
case SimpleTypes::Vml::sptHorizontalScroll : return SimpleTypes::shapetypeHorizontalScroll ;
|
||||
case SimpleTypes::Vml::sptCircularArrow : return SimpleTypes::shapetypeCircularArrow ;
|
||||
//case SimpleTypes::Vml::sptNotchedCircularArrow : return SimpleTypes::shapetypeNotchedCircularArrow ;
|
||||
case SimpleTypes::Vml::sptUturnArrow : return SimpleTypes::shapetypeUturnArrow ;
|
||||
case SimpleTypes::Vml::sptCurvedRightArrow : return SimpleTypes::shapetypeCurvedRightArrow ;
|
||||
case SimpleTypes::Vml::sptCurvedLeftArrow : return SimpleTypes::shapetypeCurvedLeftArrow ;
|
||||
case SimpleTypes::Vml::sptCurvedUpArrow : return SimpleTypes::shapetypeCurvedUpArrow ;
|
||||
case SimpleTypes::Vml::sptCurvedDownArrow : return SimpleTypes::shapetypeCurvedDownArrow ;
|
||||
case SimpleTypes::Vml::sptCloudCallout : return SimpleTypes::shapetypeCloudCallout ;
|
||||
case SimpleTypes::Vml::sptEllipseRibbon : return SimpleTypes::shapetypeEllipseRibbon ;
|
||||
case SimpleTypes::Vml::sptEllipseRibbon2 : return SimpleTypes::shapetypeEllipseRibbon2 ;
|
||||
case SimpleTypes::Vml::sptFlowChartProcess : return SimpleTypes::shapetypeFlowChartProcess ;
|
||||
case SimpleTypes::Vml::sptFlowChartDecision : return SimpleTypes::shapetypeFlowChartDecision ;
|
||||
case SimpleTypes::Vml::sptFlowChartInputOutput : return SimpleTypes::shapetypeFlowChartInputOutput ;
|
||||
case SimpleTypes::Vml::sptFlowChartPredefinedProcess:return SimpleTypes::shapetypeFlowChartPredefinedProcess ;
|
||||
case SimpleTypes::Vml::sptFlowChartInternalStorage : return SimpleTypes::shapetypeFlowChartInternalStorage ;
|
||||
case SimpleTypes::Vml::sptFlowChartDocument : return SimpleTypes::shapetypeFlowChartDocument ;
|
||||
case SimpleTypes::Vml::sptFlowChartMultidocument : return SimpleTypes::shapetypeFlowChartMultidocument ;
|
||||
case SimpleTypes::Vml::sptFlowChartTerminator : return SimpleTypes::shapetypeFlowChartTerminator ;
|
||||
case SimpleTypes::Vml::sptFlowChartPreparation : return SimpleTypes::shapetypeFlowChartPreparation ;
|
||||
case SimpleTypes::Vml::sptFlowChartManualInput : return SimpleTypes::shapetypeFlowChartManualInput ;
|
||||
case SimpleTypes::Vml::sptFlowChartManualOperation : return SimpleTypes::shapetypeFlowChartManualOperation ;
|
||||
case SimpleTypes::Vml::sptFlowChartConnector : return SimpleTypes::shapetypeFlowChartConnector ;
|
||||
case SimpleTypes::Vml::sptFlowChartPunchedCard : return SimpleTypes::shapetypeFlowChartPunchedCard ;
|
||||
case SimpleTypes::Vml::sptFlowChartPunchedTape : return SimpleTypes::shapetypeFlowChartPunchedTape ;
|
||||
case SimpleTypes::Vml::sptFlowChartSummingJunction :return SimpleTypes::shapetypeFlowChartSummingJunction ;
|
||||
case SimpleTypes::Vml::sptFlowChartOr : return SimpleTypes::shapetypeFlowChartOr ;
|
||||
case SimpleTypes::Vml::sptFlowChartCollate : return SimpleTypes::shapetypeFlowChartCollate ;
|
||||
case SimpleTypes::Vml::sptFlowChartSort : return SimpleTypes::shapetypeFlowChartSort ;
|
||||
case SimpleTypes::Vml::sptFlowChartExtract : return SimpleTypes::shapetypeFlowChartExtract ;
|
||||
case SimpleTypes::Vml::sptFlowChartMerge : return SimpleTypes::shapetypeFlowChartMerge ;
|
||||
//case SimpleTypes::Vml::sptFlowChartOfflineStorage : return SimpleTypes::shapetypeChartOfflineStorage ;
|
||||
case SimpleTypes::Vml::sptFlowChartOnlineStorage : return SimpleTypes::shapetypeFlowChartOnlineStorage ;
|
||||
case SimpleTypes::Vml::sptFlowChartMagneticTape : return SimpleTypes::shapetypeFlowChartMagneticTape ;
|
||||
case SimpleTypes::Vml::sptFlowChartMagneticDisk : return SimpleTypes::shapetypeFlowChartMagneticDisk ;
|
||||
case SimpleTypes::Vml::sptFlowChartMagneticDrum : return SimpleTypes::shapetypeFlowChartMagneticDrum ;
|
||||
case SimpleTypes::Vml::sptFlowChartDisplay : return SimpleTypes::shapetypeFlowChartDisplay ;
|
||||
case SimpleTypes::Vml::sptFlowChartDelay : return SimpleTypes::shapetypeFlowChartDelay ;
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
case Vml::sptTextPlainText : return SimpleTypes::textshapetypeTextPlain +2001;
|
||||
case Vml::sptTextStop : return SimpleTypes::textshapetypeTextStop +2001;
|
||||
case Vml::sptTextTriangle : return SimpleTypes::textshapetypeTextTriangle +2001;
|
||||
case Vml::sptTextTriangleInverted : return SimpleTypes::textshapetypeTextTriangleInverted+2001;
|
||||
case Vml::sptTextChevron : return SimpleTypes::textshapetypeTextChevron +2001;
|
||||
case Vml::sptTextChevronInverted : return SimpleTypes::textshapetypeTextChevronInverted+2001;
|
||||
case Vml::sptTextRingInside : return SimpleTypes::textshapetypeTextRingInside +2001;
|
||||
case Vml::sptTextRingOutside : return SimpleTypes::textshapetypeTextRingOutside +2001;
|
||||
case Vml::sptTextArchUpCurve : return SimpleTypes::textshapetypeTextArchUp +2001;
|
||||
case Vml::sptTextArchDownCurve : return SimpleTypes::textshapetypeTextArchDown +2001;
|
||||
case Vml::sptTextCircleCurve : return SimpleTypes::textshapetypeTextCircle +2001;
|
||||
case Vml::sptTextButtonCurve : return SimpleTypes::textshapetypeTextButton +2001;
|
||||
case Vml::sptTextArchUpPour : return SimpleTypes::textshapetypeTextArchUpPour +2001;
|
||||
case Vml::sptTextArchDownPour : return SimpleTypes::textshapetypeTextArchDownPour +2001;
|
||||
case Vml::sptTextCirclePour : return SimpleTypes::textshapetypeTextCirclePour +2001;
|
||||
case Vml::sptTextButtonPour : return SimpleTypes::textshapetypeTextButtonPour +2001;
|
||||
case Vml::sptTextCurveUp : return SimpleTypes::textshapetypeTextCurveUp +2001;
|
||||
case Vml::sptTextCurveDown : return SimpleTypes::textshapetypeTextCurveDown +2001;
|
||||
case Vml::sptTextCascadeUp : return SimpleTypes::textshapetypeTextCascadeUp +2001;
|
||||
case Vml::sptTextCascadeDown : return SimpleTypes::textshapetypeTextCascadeDown +2001;
|
||||
case Vml::sptTextWave1 : return SimpleTypes::textshapetypeTextWave1 +2001;
|
||||
case Vml::sptTextWave2 : return SimpleTypes::textshapetypeTextWave2 +2001;
|
||||
//case Vml::sptTextWave3 : return SimpleTypes::shapetypeTextWave3 ;
|
||||
case Vml::sptTextWave4 : return SimpleTypes::textshapetypeTextWave4 +2001;
|
||||
case Vml::sptTextInflate : return SimpleTypes::textshapetypeTextInflate +2001;
|
||||
case Vml::sptTextDeflate : return SimpleTypes::textshapetypeTextDeflate +2001;
|
||||
case SimpleTypes::Vml::sptTextPlainText : return SimpleTypes::textshapetypeTextPlain +2001;
|
||||
case SimpleTypes::Vml::sptTextStop : return SimpleTypes::textshapetypeTextStop +2001;
|
||||
case SimpleTypes::Vml::sptTextTriangle : return SimpleTypes::textshapetypeTextTriangle +2001;
|
||||
case SimpleTypes::Vml::sptTextTriangleInverted : return SimpleTypes::textshapetypeTextTriangleInverted+2001;
|
||||
case SimpleTypes::Vml::sptTextChevron : return SimpleTypes::textshapetypeTextChevron +2001;
|
||||
case SimpleTypes::Vml::sptTextChevronInverted : return SimpleTypes::textshapetypeTextChevronInverted+2001;
|
||||
case SimpleTypes::Vml::sptTextRingInside : return SimpleTypes::textshapetypeTextRingInside +2001;
|
||||
case SimpleTypes::Vml::sptTextRingOutside : return SimpleTypes::textshapetypeTextRingOutside +2001;
|
||||
case SimpleTypes::Vml::sptTextArchUpCurve : return SimpleTypes::textshapetypeTextArchUp +2001;
|
||||
case SimpleTypes::Vml::sptTextArchDownCurve : return SimpleTypes::textshapetypeTextArchDown +2001;
|
||||
case SimpleTypes::Vml::sptTextCircleCurve : return SimpleTypes::textshapetypeTextCircle +2001;
|
||||
case SimpleTypes::Vml::sptTextButtonCurve : return SimpleTypes::textshapetypeTextButton +2001;
|
||||
case SimpleTypes::Vml::sptTextArchUpPour : return SimpleTypes::textshapetypeTextArchUpPour +2001;
|
||||
case SimpleTypes::Vml::sptTextArchDownPour : return SimpleTypes::textshapetypeTextArchDownPour +2001;
|
||||
case SimpleTypes::Vml::sptTextCirclePour : return SimpleTypes::textshapetypeTextCirclePour +2001;
|
||||
case SimpleTypes::Vml::sptTextButtonPour : return SimpleTypes::textshapetypeTextButtonPour +2001;
|
||||
case SimpleTypes::Vml::sptTextCurveUp : return SimpleTypes::textshapetypeTextCurveUp +2001;
|
||||
case SimpleTypes::Vml::sptTextCurveDown : return SimpleTypes::textshapetypeTextCurveDown +2001;
|
||||
case SimpleTypes::Vml::sptTextCascadeUp : return SimpleTypes::textshapetypeTextCascadeUp +2001;
|
||||
case SimpleTypes::Vml::sptTextCascadeDown : return SimpleTypes::textshapetypeTextCascadeDown +2001;
|
||||
case SimpleTypes::Vml::sptTextWave1 : return SimpleTypes::textshapetypeTextWave1 +2001;
|
||||
case SimpleTypes::Vml::sptTextWave2 : return SimpleTypes::textshapetypeTextWave2 +2001;
|
||||
//case SimpleTypes::Vml::sptTextWave3 : return SimpleTypes::shapetypeTextWave3 ;
|
||||
case SimpleTypes::Vml::sptTextWave4 : return SimpleTypes::textshapetypeTextWave4 +2001;
|
||||
case SimpleTypes::Vml::sptTextInflate : return SimpleTypes::textshapetypeTextInflate +2001;
|
||||
case SimpleTypes::Vml::sptTextDeflate : return SimpleTypes::textshapetypeTextDeflate +2001;
|
||||
|
||||
//case Vml::sptTextInflateBottom : return SimpleTypes::shapetypeTextInflateBottom ;
|
||||
//case Vml::sptTextDeflateBottom : return SimpleTypes::shapetypeTextDeflateBottom ;
|
||||
//case Vml::sptTextInflateTop : return SimpleTypes::shapetypeTextInflateTop ;
|
||||
//case Vml::sptTextDeflateTop : return SimpleTypes::shapetypeTextDeflateTop ;
|
||||
//case Vml::sptTextDeflateInflate : return SimpleTypes::shapetypeTextDeflateInflate ;
|
||||
//case Vml::sptTextDeflateInflateDeflate :return SimpleTypes::shapetypeTextDeflateInflateDeflat ;
|
||||
//case Vml::sptTextFadeRight : return SimpleTypes::shapetypeTextFadeRight ;
|
||||
//case Vml::sptTextFadeLeft : return SimpleTypes::shapetypeTextFadeLeft ;
|
||||
//case Vml::sptTextFadeUp : return SimpleTypes::shapetypeTextFadeUp ;
|
||||
//case Vml::sptTextFadeDown : return SimpleTypes::shapetypeTextFadeDown ;
|
||||
case Vml::sptTextSlantUp : return SimpleTypes::textshapetypeTextSlantUp +2001;
|
||||
case Vml::sptTextSlantDown : return SimpleTypes::textshapetypeTextSlantDown +2001;
|
||||
case Vml::sptTextCanUp : return SimpleTypes::textshapetypeTextCanUp +2001;
|
||||
case Vml::sptTextCanDown : return SimpleTypes::textshapetypeTextCanDown +2001;
|
||||
//case SimpleTypes::Vml::sptTextInflateBottom : return SimpleTypes::shapetypeTextInflateBottom ;
|
||||
//case SimpleTypes::Vml::sptTextDeflateBottom : return SimpleTypes::shapetypeTextDeflateBottom ;
|
||||
//case SimpleTypes::Vml::sptTextInflateTop : return SimpleTypes::shapetypeTextInflateTop ;
|
||||
//case SimpleTypes::Vml::sptTextDeflateTop : return SimpleTypes::shapetypeTextDeflateTop ;
|
||||
//case SimpleTypes::Vml::sptTextDeflateInflate : return SimpleTypes::shapetypeTextDeflateInflate ;
|
||||
//case SimpleTypes::Vml::sptTextDeflateInflateDeflate : return SimpleTypes::shapetypeTextDeflateInflateDeflat ;
|
||||
//case SimpleTypes::Vml::sptTextFadeRight : return SimpleTypes::shapetypeTextFadeRight ;
|
||||
//case SimpleTypes::Vml::sptTextFadeLeft : return SimpleTypes::shapetypeTextFadeLeft ;
|
||||
//case SimpleTypes::Vml::sptTextFadeUp : return SimpleTypes::shapetypeTextFadeUp ;
|
||||
//case SimpleTypes::Vml::sptTextFadeDown : return SimpleTypes::shapetypeTextFadeDown ;
|
||||
case SimpleTypes::Vml::sptTextSlantUp : return SimpleTypes::textshapetypeTextSlantUp +2001;
|
||||
case SimpleTypes::Vml::sptTextSlantDown : return SimpleTypes::textshapetypeTextSlantDown +2001;
|
||||
case SimpleTypes::Vml::sptTextCanUp : return SimpleTypes::textshapetypeTextCanUp +2001;
|
||||
case SimpleTypes::Vml::sptTextCanDown : return SimpleTypes::textshapetypeTextCanDown +2001;
|
||||
|
||||
case Vml::sptFlowChartAlternateProcess :return SimpleTypes::shapetypeFlowChartAlternateProcess ;
|
||||
case Vml::sptFlowChartOffpageConnector :return SimpleTypes::shapetypeFlowChartOffpageConnector ;
|
||||
case Vml::sptCallout90 : return SimpleTypes::shapetypeCallout1 ;
|
||||
case Vml::sptAccentCallout90 : return SimpleTypes::shapetypeAccentCallout1 ;
|
||||
case Vml::sptBorderCallout90 : return SimpleTypes::shapetypeBorderCallout1;
|
||||
case Vml::sptAccentBorderCallout90 : return SimpleTypes::shapetypeAccentBorderCallout1 ;
|
||||
case Vml::sptLeftRightUpArrow : return SimpleTypes::shapetypeLeftRightUpArrow ;
|
||||
case Vml::sptSun : return SimpleTypes::shapetypeSun ;
|
||||
case Vml::sptMoon : return SimpleTypes::shapetypeMoon ;
|
||||
case Vml::sptBracketPair : return SimpleTypes::shapetypeBracketPair ;
|
||||
case Vml::sptBracePair : return SimpleTypes::shapetypeBracePair ;
|
||||
case Vml::sptSeal4 : return SimpleTypes::shapetypeStar4 ;
|
||||
case Vml::sptDoubleWave : return SimpleTypes::shapetypeDoubleWave ;
|
||||
case Vml::sptActionButtonBlank : return SimpleTypes::shapetypeActionButtonBlank ;
|
||||
case Vml::sptActionButtonHome : return SimpleTypes::shapetypeActionButtonHome ;
|
||||
case Vml::sptActionButtonHelp : return SimpleTypes::shapetypeActionButtonHelp ;
|
||||
case Vml::sptActionButtonInformation : return SimpleTypes::shapetypeActionButtonInformation ;
|
||||
case Vml::sptActionButtonForwardNext : return SimpleTypes::shapetypeActionButtonForwardNext ;
|
||||
case Vml::sptActionButtonBackPrevious : return SimpleTypes::shapetypeActionButtonBackPrevious ;
|
||||
case Vml::sptActionButtonEnd : return SimpleTypes::shapetypeActionButtonEnd ;
|
||||
case Vml::sptActionButtonBeginning : return SimpleTypes::shapetypeActionButtonBeginning ;
|
||||
case Vml::sptActionButtonReturn : return SimpleTypes::shapetypeActionButtonReturn ;
|
||||
case Vml::sptActionButtonDocument : return SimpleTypes::shapetypeActionButtonDocument ;
|
||||
case Vml::sptActionButtonSound : return SimpleTypes::shapetypeActionButtonSound ;
|
||||
case Vml::sptActionButtonMovie : return SimpleTypes::shapetypeActionButtonMovie ;
|
||||
//case Vml::sptHostControl : return SimpleTypes::shapetype ;
|
||||
case Vml::sptTextBox : return 2000;
|
||||
case SimpleTypes::Vml::sptFlowChartAlternateProcess : return SimpleTypes::shapetypeFlowChartAlternateProcess ;
|
||||
case SimpleTypes::Vml::sptFlowChartOffpageConnector : return SimpleTypes::shapetypeFlowChartOffpageConnector ;
|
||||
case SimpleTypes::Vml::sptCallout90 : return SimpleTypes::shapetypeCallout1 ;
|
||||
case SimpleTypes::Vml::sptAccentCallout90 : return SimpleTypes::shapetypeAccentCallout1 ;
|
||||
case SimpleTypes::Vml::sptBorderCallout90 : return SimpleTypes::shapetypeBorderCallout1;
|
||||
case SimpleTypes::Vml::sptAccentBorderCallout90 : return SimpleTypes::shapetypeAccentBorderCallout1 ;
|
||||
case SimpleTypes::Vml::sptLeftRightUpArrow : return SimpleTypes::shapetypeLeftRightUpArrow ;
|
||||
case SimpleTypes::Vml::sptSun : return SimpleTypes::shapetypeSun ;
|
||||
case SimpleTypes::Vml::sptMoon : return SimpleTypes::shapetypeMoon ;
|
||||
case SimpleTypes::Vml::sptBracketPair : return SimpleTypes::shapetypeBracketPair ;
|
||||
case SimpleTypes::Vml::sptBracePair : return SimpleTypes::shapetypeBracePair ;
|
||||
case SimpleTypes::Vml::sptSeal4 : return SimpleTypes::shapetypeStar4 ;
|
||||
case SimpleTypes::Vml::sptDoubleWave : return SimpleTypes::shapetypeDoubleWave ;
|
||||
case SimpleTypes::Vml::sptActionButtonBlank : return SimpleTypes::shapetypeActionButtonBlank ;
|
||||
case SimpleTypes::Vml::sptActionButtonHome : return SimpleTypes::shapetypeActionButtonHome ;
|
||||
case SimpleTypes::Vml::sptActionButtonHelp : return SimpleTypes::shapetypeActionButtonHelp ;
|
||||
case SimpleTypes::Vml::sptActionButtonInformation : return SimpleTypes::shapetypeActionButtonInformation ;
|
||||
case SimpleTypes::Vml::sptActionButtonForwardNext : return SimpleTypes::shapetypeActionButtonForwardNext ;
|
||||
case SimpleTypes::Vml::sptActionButtonBackPrevious : return SimpleTypes::shapetypeActionButtonBackPrevious ;
|
||||
case SimpleTypes::Vml::sptActionButtonEnd : return SimpleTypes::shapetypeActionButtonEnd ;
|
||||
case SimpleTypes::Vml::sptActionButtonBeginning : return SimpleTypes::shapetypeActionButtonBeginning ;
|
||||
case SimpleTypes::Vml::sptActionButtonReturn : return SimpleTypes::shapetypeActionButtonReturn ;
|
||||
case SimpleTypes::Vml::sptActionButtonDocument : return SimpleTypes::shapetypeActionButtonDocument ;
|
||||
case SimpleTypes::Vml::sptActionButtonSound : return SimpleTypes::shapetypeActionButtonSound ;
|
||||
case SimpleTypes::Vml::sptActionButtonMovie : return SimpleTypes::shapetypeActionButtonMovie ;
|
||||
//case SimpleTypes::Vml::sptHostControl : return SimpleTypes::shapetype ;
|
||||
case SimpleTypes::Vml::sptTextBox : return 2000;
|
||||
default:
|
||||
return SimpleTypes::shapetypeRect;
|
||||
|
||||
|
||||
@ -993,8 +993,9 @@ HRESULT CDrawingConverter::AddShapeType(const std::wstring& bsXml)
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
std::wstring CDrawingConverter::ConvertObjectToVml (const std::wstring& sXml)
|
||||
PPTX::Logic::SpTreeElem CDrawingConverter::ObjectFromXml(const std::wstring& sXml, std::wstring** ppMainProps)
|
||||
{
|
||||
PPTX::Logic::SpTreeElem oElem;
|
||||
std::wstring sBegin(L"<main xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:p=\"urn:schemas-microsoft-com:office:powerpoint\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:x=\"urn:schemas-microsoft-com:office:excel\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:w10=\"urn:schemas-microsoft-com:office:word\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" xmlns:ve=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" xmlns:wp14=\"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing\" xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\" xmlns:w15=\"http://schemas.microsoft.com/office/word/2012/wordml\" xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\" xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\" xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" xmlns:a14=\"http://schemas.microsoft.com/office/drawing/2010/main\" xmlns:pic=\"http://schemas.openxmlformats.org/drawingml/2006/picture\" xmlns:xdr=\"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing\">");
|
||||
|
||||
std::wstring sEnd(L"</main>");
|
||||
@ -1002,16 +1003,11 @@ std::wstring CDrawingConverter::ConvertObjectToVml (const std::wstring& sXml)
|
||||
|
||||
XmlUtils::CXmlNode oMainNode;
|
||||
if (!oMainNode.FromXmlString(strXml))
|
||||
return L"";
|
||||
return oElem;
|
||||
|
||||
XmlUtils::CXmlNodes oNodes;
|
||||
if (!oMainNode.GetNodes(L"*", oNodes))
|
||||
return L"";
|
||||
|
||||
PPTX::Logic::SpTreeElem oElem;
|
||||
|
||||
std::wstring *pMainProps = new std::wstring();
|
||||
std::wstring **ppMainProps = &pMainProps;
|
||||
return oElem;
|
||||
|
||||
for (LONG i = 0; i < oNodes.GetCount(); ++i)
|
||||
{
|
||||
@ -1298,14 +1294,98 @@ std::wstring CDrawingConverter::ConvertObjectToVml (const std::wstring& sXml)
|
||||
}
|
||||
}
|
||||
}
|
||||
return oElem;
|
||||
}
|
||||
|
||||
std::wstring CDrawingConverter::ObjectToDrawingML(const std::wstring& sXml, LONG lDocType)
|
||||
{
|
||||
std::wstring *pMainProps = new std::wstring();
|
||||
|
||||
PPTX::Logic::SpTreeElem oElem = ObjectFromXml(sXml, &pMainProps);
|
||||
|
||||
if (oElem.is_init() == false) return L"";
|
||||
|
||||
NSBinPptxRW::CXmlWriter oXmlWriter;
|
||||
oXmlWriter.m_lDocType = lDocType;
|
||||
oXmlWriter.m_bIsUseOffice2007 = false;
|
||||
|
||||
oXmlWriter.m_bIsTop = true;
|
||||
|
||||
oXmlWriter.WriteString(L"<w:drawing>");
|
||||
|
||||
bool bIsInline = false;
|
||||
|
||||
std::wstring strMainProps = *pMainProps;
|
||||
std::wstring strMainPropsTail;
|
||||
|
||||
int nIndexF = strMainProps.find(L"</wp:inline>");
|
||||
if (-1 != nIndexF)
|
||||
{
|
||||
bIsInline = true;
|
||||
strMainProps = strMainProps.substr(0, nIndexF);
|
||||
}
|
||||
else
|
||||
{
|
||||
nIndexF = strMainProps.find(L"</wp:anchor>");
|
||||
strMainProps = strMainProps.substr(0, nIndexF);
|
||||
}
|
||||
|
||||
if (-1 == nIndexF)
|
||||
{
|
||||
oElem.toXmlWriter(&oXmlWriter);
|
||||
return oXmlWriter.GetXmlString();
|
||||
}
|
||||
|
||||
int nIndexTail = strMainProps.find(L"<wp14:sizeRel");
|
||||
if(-1 != nIndexTail)
|
||||
{
|
||||
strMainPropsTail = strMainProps.substr( nIndexTail );
|
||||
strMainProps = strMainProps.substr(0, nIndexTail);
|
||||
}
|
||||
|
||||
oXmlWriter.WriteString(strMainProps);
|
||||
|
||||
if (oElem.is<PPTX::Logic::SpTree>())
|
||||
{
|
||||
oXmlWriter.WriteString(L"<a:graphic xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\">\
|
||||
<a:graphicData uri=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\">");
|
||||
}
|
||||
else if (oElem.is<PPTX::Logic::Pic>())
|
||||
{
|
||||
oXmlWriter.WriteString(L"<a:graphic xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\">\
|
||||
<a:graphicData uri=\"http://schemas.openxmlformats.org/drawingml/2006/picture\">");
|
||||
}
|
||||
else
|
||||
{
|
||||
oXmlWriter.WriteString(L"<a:graphic xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\">\
|
||||
<a:graphicData uri=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\">");
|
||||
}
|
||||
oElem.toXmlWriter(&oXmlWriter);
|
||||
oXmlWriter.WriteString(L"</a:graphicData></a:graphic>");
|
||||
|
||||
oXmlWriter.WriteString(strMainPropsTail);
|
||||
oXmlWriter.WriteString(bIsInline ? L"</wp:inline>" : L"</wp:anchor>");
|
||||
|
||||
oXmlWriter.WriteString(L"</w:drawing>");
|
||||
|
||||
delete pMainProps;
|
||||
|
||||
return oXmlWriter.GetXmlString();
|
||||
}
|
||||
|
||||
std::wstring CDrawingConverter::ObjectToVML (const std::wstring& sXml)
|
||||
{
|
||||
std::wstring *pMainProps = new std::wstring();
|
||||
|
||||
PPTX::Logic::SpTreeElem oElem = ObjectFromXml(sXml, &pMainProps);
|
||||
|
||||
if (oElem.is_init() == false) return L"";
|
||||
|
||||
NSBinPptxRW::CXmlWriter oXmlWriter;
|
||||
oXmlWriter.m_lDocType = XMLWRITER_DOC_TYPE_DOCX;
|
||||
oXmlWriter.m_bIsUseOffice2007 = true;
|
||||
|
||||
oXmlWriter.m_bIsTop = (1 == m_nCurrentIndexObject) ? true : false;
|
||||
oXmlWriter.m_bIsTop = true;
|
||||
|
||||
if (NULL == m_pOOXToVMLRenderer)
|
||||
m_pOOXToVMLRenderer = new COOXToVMLGeometry();
|
||||
@ -4521,7 +4601,7 @@ HRESULT CDrawingConverter::SaveThemeXml(LONG lStart, LONG lLength, const std::ws
|
||||
HRESULT CDrawingConverter::SaveObject(LONG lStart, LONG lLength, const std::wstring& bsMainProps, std::wstring & sXml)
|
||||
{
|
||||
bool bIsInline = false;
|
||||
std::wstring strMainProps = (std::wstring)bsMainProps;
|
||||
std::wstring strMainProps = bsMainProps;
|
||||
std::wstring strMainPropsTail;
|
||||
int nIndexF = strMainProps.find(L"</wp:inline>");
|
||||
if (-1 != nIndexF)
|
||||
|
||||
@ -222,7 +222,9 @@ namespace NSBinPptxRW
|
||||
void SaveObjectExWriterInit (NSBinPptxRW::CXmlWriter& oXmlWriter, LONG lDocType);
|
||||
void SaveObjectExWriterRelease (NSBinPptxRW::CXmlWriter& oXmlWriter);
|
||||
|
||||
std::wstring ConvertObjectToVml (const std::wstring& sXml);
|
||||
PPTX::Logic::SpTreeElem ObjectFromXml(const std::wstring& sXml, std::wstring** pMainProps);
|
||||
std::wstring ObjectToVML (const std::wstring& sXml);
|
||||
std::wstring ObjectToDrawingML (const std::wstring& sXml, LONG lDocType);
|
||||
|
||||
std::wstring SaveObjectBackground(LONG lStart, LONG lLength);
|
||||
|
||||
|
||||
@ -563,8 +563,8 @@ private:
|
||||
public:
|
||||
COOXToVMLGeometry()
|
||||
{
|
||||
m_bIsFillPart = false;
|
||||
m_bIsStrokePart = false;
|
||||
m_bIsFillPart = false;
|
||||
m_bIsStrokePart = false;
|
||||
|
||||
m_dScaleX = 1.0;
|
||||
m_dScaleY = 1.0;
|
||||
|
||||
@ -322,9 +322,12 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
int newLen = (int)m_arAdjustments.size();
|
||||
for (int i = newLen; i < nOldLen; ++i)
|
||||
size_t newLen = m_arAdjustments.size();
|
||||
|
||||
for (size_t i = newLen; i < nOldLen; ++i)
|
||||
{
|
||||
m_arAdjustments.push_back(oOldAdj[i]);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -395,7 +395,6 @@ public:
|
||||
SetPen (root);
|
||||
SetBrush (root);
|
||||
|
||||
//return m_pShape->LoadFromXML(xml);
|
||||
return ((CPPTShape*)m_pShape)->LoadFromXML(root);
|
||||
}
|
||||
#endif
|
||||
@ -439,20 +438,20 @@ public:
|
||||
XmlUtils::CXmlNode oNodeTemplate;
|
||||
if (oNodePict.GetNode(_T("stroke"), oNodeTemplate))
|
||||
{
|
||||
std::wstring strColor = oNodeTemplate.GetAttributeOrValue(_T("strokecolor"));
|
||||
std::wstring strColor = oNodeTemplate.GetAttributeOrValue(_T("strokecolor"));
|
||||
//if (strColor != _T(""))
|
||||
// m_oPen.Color.FromString(strColor);
|
||||
//std::wstring strSize = oNodeTemplate.GetAttributeOrValue(_T("strokeweight"));
|
||||
//std::wstring strSize = oNodeTemplate.GetAttributeOrValue(_T("strokeweight"));
|
||||
//if (strSize != _T(""))
|
||||
// m_oPen.Size = XmlUtils::GetDouble(strSize);
|
||||
//std::wstring strStroke = oNodeTemplate.GetAttributeOrValue(_T("stroked"));
|
||||
//std::wstring strStroke = oNodeTemplate.GetAttributeOrValue(_T("stroked"));
|
||||
//if (strStroke != _T(""))
|
||||
// m_oPen.Alpha = 0;
|
||||
|
||||
}
|
||||
if (oNodePict.GetNode(_T("v:stroke"), oNodeTemplate))
|
||||
{
|
||||
std::wstring strColor = oNodeTemplate.GetAttributeOrValue(_T("dashstyle"));
|
||||
std::wstring strColor = oNodeTemplate.GetAttributeOrValue(_T("dashstyle"));
|
||||
//if (strColor != _T(""))
|
||||
// m_oPen.DashStyle = XmlUtils::GetInteger(strColor);
|
||||
}
|
||||
@ -463,7 +462,7 @@ public:
|
||||
XmlUtils::CXmlNode oNodeTemplate;
|
||||
if (oNodePict.GetNode(_T("fillcolor"), oNodeTemplate))
|
||||
{
|
||||
std::wstring strColor = oNodeTemplate.GetAttributeOrValue(_T("val"));
|
||||
std::wstring strColor = oNodeTemplate.GetAttributeOrValue(_T("val"));
|
||||
//if (strColor != _T(""))
|
||||
// m_oBrush.Color1.FromString(strColor);
|
||||
}
|
||||
@ -476,19 +475,19 @@ public:
|
||||
XmlUtils::CXmlNode oNodeTemplate;
|
||||
if (oNodePict.GetNode(_T("coordsize"), oNodeTemplate))
|
||||
{
|
||||
std::wstring strCoordSize = oNodeTemplate.GetAttributeOrValue(_T("val"));
|
||||
std::wstring strCoordSize = oNodeTemplate.GetAttributeOrValue(_T("val"));
|
||||
if (strCoordSize != _T(""))
|
||||
{
|
||||
std::vector<std::wstring> oArray;
|
||||
boost::algorithm::split(oArray, strCoordSize, boost::algorithm::is_any_of(L","), boost::algorithm::token_compress_on);
|
||||
std::vector<std::wstring> oArray;
|
||||
boost::algorithm::split(oArray, strCoordSize, boost::algorithm::is_any_of(L","), boost::algorithm::token_compress_on);
|
||||
|
||||
m_dWidthLogic = XmlUtils::GetInteger(oArray[0]);
|
||||
m_dWidthLogic = XmlUtils::GetInteger(oArray[0]);
|
||||
m_dHeightLogic = XmlUtils::GetInteger(oArray[1]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
std::wstring id = oNodePict.GetAttributeOrValue(_T("type"));
|
||||
std::wstring id = oNodePict.GetAttributeOrValue(_T("type"));
|
||||
if (id != _T(""))
|
||||
{
|
||||
m_dWidthLogic = 21600;
|
||||
@ -499,11 +498,11 @@ public:
|
||||
XmlUtils::CXmlNode oNodeTemplate;
|
||||
if (oNodePict.GetNode(_T("template"), oNodeTemplate))
|
||||
{
|
||||
std::wstring strCoordSize = oNodeTemplate.GetAttributeOrValue(_T("coordsize"));
|
||||
std::wstring strCoordSize = oNodeTemplate.GetAttributeOrValue(_T("coordsize"));
|
||||
if (strCoordSize != _T(""))
|
||||
{
|
||||
std::vector<std::wstring> oArray;
|
||||
boost::algorithm::split(oArray, strCoordSize, boost::algorithm::is_any_of(L","), boost::algorithm::token_compress_on);
|
||||
std::vector<std::wstring> oArray;
|
||||
boost::algorithm::split(oArray, strCoordSize, boost::algorithm::is_any_of(L","), boost::algorithm::token_compress_on);
|
||||
|
||||
m_dWidthLogic = XmlUtils::GetInteger(oArray[0]);
|
||||
m_dHeightLogic = XmlUtils::GetInteger(oArray[1]);
|
||||
|
||||
@ -158,21 +158,17 @@ namespace PPTX
|
||||
|
||||
std::map<std::wstring, smart_ptr<OOX::File>>::const_iterator pPair = map.find(normPath);
|
||||
|
||||
if (bIsSlide && (pRelation->Type() == OOX::Presentation::FileTypes::Slide))
|
||||
{
|
||||
long percent = Event->GetPercent();
|
||||
if (bIsSlide && (pRelation->Type() == OOX::FileTypes::HyperLink ||
|
||||
pRelation->Type() == OOX::Presentation::FileTypes::Slide))
|
||||
{// + external audio, video ...
|
||||
|
||||
smart_ptr<OOX::File> file = smart_ptr<OOX::File>(new OOX::HyperLink(pRelation->Target()));
|
||||
smart_ptr<OOX::File> file;
|
||||
|
||||
bool res = Event->Progress(0, percent + m_lPercent);
|
||||
file = smart_ptr<OOX::File>(new OOX::HyperLink(pRelation->Target()));
|
||||
|
||||
normPath = pRelation->Target();
|
||||
Add(pRelation->rId(), file);
|
||||
|
||||
if (res || m_bCancelled)
|
||||
{
|
||||
m_bCancelled = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -193,7 +189,7 @@ namespace PPTX
|
||||
Add(pRelation->rId(), file);
|
||||
|
||||
smart_ptr<FileContainer> pContainer = file.smart_dynamic_cast<FileContainer>();
|
||||
bool res = Event->Progress(0, percent + m_lPercent);
|
||||
Event->Progress(0, percent + m_lPercent);
|
||||
|
||||
if (pContainer.IsInit())
|
||||
{
|
||||
@ -207,8 +203,7 @@ namespace PPTX
|
||||
//на презентация с hyperlink выходим при достижении 100%. Проценты считаются от количества обработанных файлов, а hyperlink не файл(Ligninger_og_uligheder.pptx)
|
||||
if (m_bCancelled)
|
||||
{
|
||||
m_bCancelled = true;
|
||||
break;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -532,13 +532,14 @@ namespace PPTX
|
||||
return (long) nvPicPr.cNvPr.id;
|
||||
}
|
||||
|
||||
void Pic::toXmlWriterVML(NSBinPptxRW::CXmlWriter *pWriter, NSCommon::smart_ptr<PPTX::WrapperFile>& _oTheme, NSCommon::smart_ptr<PPTX::WrapperWritingElement>& _oClrMap)
|
||||
void Pic::toXmlWriterVML(NSBinPptxRW::CXmlWriter *pWriter, NSCommon::smart_ptr<PPTX::WrapperFile>& _oTheme, NSCommon::smart_ptr<PPTX::WrapperWritingElement>& _oClrMap, bool in_group)
|
||||
{
|
||||
smart_ptr<PPTX::Theme> oTheme = _oTheme.smart_dynamic_cast<PPTX::Theme>();
|
||||
smart_ptr<PPTX::Logic::ClrMap> oClrMap = oTheme.smart_dynamic_cast<PPTX::Logic::ClrMap>();
|
||||
|
||||
bool bOle = oleObject.IsInit() && oleObject->isValid();
|
||||
std::wstring sOleNodeName;
|
||||
|
||||
if (XMLWRITER_DOC_TYPE_XLSX != pWriter->m_lDocType)
|
||||
{
|
||||
if(bOle && oleObject->m_oDxaOrig.IsInit() && oleObject->m_oDyaOrig.IsInit())
|
||||
@ -546,8 +547,8 @@ namespace PPTX
|
||||
sOleNodeName = L"w:object";
|
||||
pWriter->StartNode(sOleNodeName);
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(_T("w:dxaOrig"), oleObject->m_oDxaOrig);
|
||||
pWriter->WriteAttribute(_T("w:dyaOrig"), oleObject->m_oDyaOrig);
|
||||
pWriter->WriteAttribute(L"w:dxaOrig", oleObject->m_oDxaOrig);
|
||||
pWriter->WriteAttribute(L"w:dyaOrig", oleObject->m_oDyaOrig);
|
||||
pWriter->EndAttributes();
|
||||
}
|
||||
else
|
||||
@ -559,38 +560,40 @@ namespace PPTX
|
||||
}
|
||||
}
|
||||
|
||||
int dL = 0;
|
||||
int dT = 0;
|
||||
int dW = 0;
|
||||
int dH = 0;
|
||||
|
||||
int nShapeId = pWriter->m_lObjectIdVML;
|
||||
std::wstring strId = L"_x0000_i" + std::to_wstring(nShapeId);
|
||||
std::wstring strSpid = L"_x" + std::to_wstring(0xFFFF & (pWriter->m_lObjectIdVML >> 16)) + L"_s" + std::to_wstring(0xFFFF & pWriter->m_lObjectIdVML);
|
||||
std::wstring strObjectid = L"_152504" + std::to_wstring(pWriter->m_lObjectIdVML);
|
||||
std::wstring strId = L"_x0000_i" + std::to_wstring(nShapeId);
|
||||
std::wstring strSpid = L"_x" + std::to_wstring(0xFFFF & (pWriter->m_lObjectIdVML >> 16)) + L"_s" + std::to_wstring(0xFFFF & pWriter->m_lObjectIdVML);
|
||||
std::wstring strObjectid = L"_152504" + std::to_wstring(pWriter->m_lObjectIdVML);
|
||||
pWriter->m_lObjectIdVML++;
|
||||
|
||||
int dL = 0, dT = 0, dW = 0, dH = 0;
|
||||
if (spPr.xfrm.is_init())
|
||||
{
|
||||
if (spPr.xfrm->offX.is_init()) dL = *spPr.xfrm->offX;
|
||||
if (spPr.xfrm->offY.is_init()) dT = *spPr.xfrm->offY;
|
||||
if (spPr.xfrm->extX.is_init()) dW = *spPr.xfrm->extX;
|
||||
if (spPr.xfrm->extY.is_init()) dH = *spPr.xfrm->extY;
|
||||
}
|
||||
|
||||
NSBinPptxRW::CXmlWriter oStylesWriter;
|
||||
|
||||
if(pWriter->m_strStyleMain.empty())
|
||||
{
|
||||
if (spPr.xfrm.is_init())
|
||||
oStylesWriter.WriteAttributeCSS (L"position", L"absolute");
|
||||
if (in_group)
|
||||
{
|
||||
if (spPr.xfrm->offX.is_init())
|
||||
dL = (*spPr.xfrm->offX) / 12700.;
|
||||
if (spPr.xfrm->offY.is_init())
|
||||
dT = (*spPr.xfrm->offY) / 12700.;
|
||||
if (spPr.xfrm->extX.is_init())
|
||||
dW = (*spPr.xfrm->extX) / 12700.;
|
||||
if (spPr.xfrm->extY.is_init())
|
||||
dH = (*spPr.xfrm->extY) / 12700.;
|
||||
oStylesWriter.WriteAttributeCSS_int(L"left", dL / 100);
|
||||
oStylesWriter.WriteAttributeCSS_int(L"top", dT / 100);
|
||||
oStylesWriter.WriteAttributeCSS_int(L"width", dW / 100);
|
||||
oStylesWriter.WriteAttributeCSS_int(L"height", dH / 100);
|
||||
}
|
||||
else
|
||||
{
|
||||
oStylesWriter.WriteAttributeCSS_int_pt(L"left", dL / 12700);
|
||||
oStylesWriter.WriteAttributeCSS_int_pt(L"top", dT / 12700);
|
||||
oStylesWriter.WriteAttributeCSS_int_pt(L"width", dW / 12700);
|
||||
oStylesWriter.WriteAttributeCSS_int_pt(L"height", dH / 12700);
|
||||
}
|
||||
|
||||
oStylesWriter.WriteAttributeCSS (_T("position"), _T("absolute"));
|
||||
oStylesWriter.WriteAttributeCSS_int_pt (_T("left"), dL);
|
||||
oStylesWriter.WriteAttributeCSS_int_pt (_T("top"), dT);
|
||||
oStylesWriter.WriteAttributeCSS_int_pt (_T("width"), dW);
|
||||
oStylesWriter.WriteAttributeCSS_int_pt (_T("height"), dH);
|
||||
}
|
||||
|
||||
if (spPr.xfrm.is_init())
|
||||
@ -598,21 +601,21 @@ namespace PPTX
|
||||
if (spPr.xfrm->rot.is_init())
|
||||
{
|
||||
int nRot = (int)((double)(*(spPr.xfrm->rot)) / 60000.0);
|
||||
oStylesWriter.WriteAttributeCSS_int(_T("rotation"), nRot);
|
||||
oStylesWriter.WriteAttributeCSS_int(L"rotation", nRot);
|
||||
}
|
||||
bool bIsFH = spPr.xfrm->flipH.get_value_or(false);
|
||||
bool bIsFV = spPr.xfrm->flipV.get_value_or(false);
|
||||
if (bIsFH && bIsFV)
|
||||
{
|
||||
oStylesWriter.WriteAttributeCSS(_T("flip"), _T("xy"));
|
||||
oStylesWriter.WriteAttributeCSS(L"flip", L"xy");
|
||||
}
|
||||
else if (bIsFH)
|
||||
{
|
||||
oStylesWriter.WriteAttributeCSS(_T("flip"), _T("x"));
|
||||
oStylesWriter.WriteAttributeCSS(L"flip", L"x");
|
||||
}
|
||||
else if (bIsFV)
|
||||
{
|
||||
oStylesWriter.WriteAttributeCSS(_T("flip"), _T("y"));
|
||||
oStylesWriter.WriteAttributeCSS(L"flip", L"y");
|
||||
}
|
||||
}
|
||||
|
||||
@ -631,32 +634,38 @@ namespace PPTX
|
||||
|
||||
spPr.Geometry.ConvertToCustomVML(pWriter->m_pOOXToVMLRenderer, strPath, strTextRect, lW, lH);
|
||||
|
||||
pWriter->StartNode(_T("v:shape"));
|
||||
pWriter->StartNode(L"v:shape");
|
||||
|
||||
if (XMLWRITER_DOC_TYPE_XLSX == pWriter->m_lDocType)
|
||||
{
|
||||
pWriter->WriteAttribute(_T("id"), strSpid);
|
||||
pWriter->WriteAttribute(L"id", strSpid);
|
||||
}
|
||||
else
|
||||
{
|
||||
pWriter->WriteAttribute(_T("id"), strId);
|
||||
pWriter->WriteAttribute(_T("o:spid"), strSpid);
|
||||
pWriter->WriteAttribute(L"id", strId);
|
||||
pWriter->WriteAttribute(L"o:spid", strSpid);
|
||||
}
|
||||
|
||||
pWriter->StartAttributes();
|
||||
if (oStylesWriter.GetSize() == 0)
|
||||
{
|
||||
pWriter->WriteAttribute(_T("style"), pWriter->m_strStyleMain);
|
||||
pWriter->WriteAttribute(L"style", pWriter->m_strStyleMain);
|
||||
}
|
||||
else
|
||||
{
|
||||
pWriter->WriteAttribute(_T("style"), pWriter->m_strStyleMain + oStylesWriter.GetXmlString());
|
||||
pWriter->WriteAttribute(L"style", pWriter->m_strStyleMain + oStylesWriter.GetXmlString());
|
||||
}
|
||||
|
||||
if(!bOle)
|
||||
{
|
||||
pWriter->WriteAttribute(_T("coordsize"), (std::wstring)_T("100000,100000"));
|
||||
pWriter->WriteAttribute(_T("path"), strPath);
|
||||
oStylesWriter.ClearNoAttack();
|
||||
oStylesWriter.m_oWriter.AddSize(30);
|
||||
oStylesWriter.m_oWriter.AddIntNoCheck(dW / 100);
|
||||
oStylesWriter.m_oWriter.AddCharNoCheck(WCHAR(','));
|
||||
oStylesWriter.m_oWriter.AddIntNoCheck(dH / 100);
|
||||
pWriter->WriteAttribute(L"coordsize", oStylesWriter.GetXmlString());
|
||||
|
||||
pWriter->WriteAttribute(L"path", strPath);
|
||||
}
|
||||
|
||||
if (!pWriter->m_strAttributesMain.empty())
|
||||
@ -666,12 +675,12 @@ namespace PPTX
|
||||
}
|
||||
if(bOle)
|
||||
{
|
||||
pWriter->WriteAttribute(_T("filled"), (std::wstring)L"f");
|
||||
pWriter->WriteAttribute(L"filled", L"f");
|
||||
}
|
||||
std::wstring strNodeVal = _T("");
|
||||
std::wstring strNodeVal;
|
||||
if (!spPr.ln.is_init())
|
||||
{
|
||||
pWriter->WriteAttribute(_T("stroked"), (std::wstring)_T("false"));
|
||||
pWriter->WriteAttribute(L"stroked", L"false");
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -683,76 +692,76 @@ namespace PPTX
|
||||
|
||||
pWriter->EndAttributes();
|
||||
|
||||
pWriter->StartNode(_T("v:path"));
|
||||
pWriter->StartNode(L"v:path");
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(_T("textboxrect"), strTextRect);
|
||||
pWriter->WriteAttribute(L"textboxrect", strTextRect);
|
||||
pWriter->EndAttributes();
|
||||
pWriter->EndNode(_T("v:path"));
|
||||
pWriter->EndNode(L"v:path");
|
||||
|
||||
if (blipFill.blip.is_init() && blipFill.blip->embed.is_init())
|
||||
{
|
||||
pWriter->StartNode(_T("v:imagedata"));
|
||||
pWriter->StartNode(L"v:imagedata");
|
||||
pWriter->StartAttributes();
|
||||
if (XMLWRITER_DOC_TYPE_XLSX == pWriter->m_lDocType)
|
||||
{
|
||||
pWriter->WriteAttribute(_T("o:relid"), blipFill.blip->embed->ToString());
|
||||
pWriter->WriteAttribute(L"o:relid", blipFill.blip->embed->ToString());
|
||||
}
|
||||
else
|
||||
{
|
||||
pWriter->WriteAttribute(_T("r:id"), blipFill.blip->embed->ToString());
|
||||
pWriter->WriteAttribute(L"r:id", blipFill.blip->embed->ToString());
|
||||
}
|
||||
pWriter->WriteAttribute(_T("o:title"), std::wstring(_T("")));
|
||||
pWriter->WriteAttribute(L"o:title", L"");
|
||||
pWriter->EndAttributes();
|
||||
pWriter->EndNode(_T("v:imagedata"));
|
||||
pWriter->EndNode(L"v:imagedata");
|
||||
}
|
||||
|
||||
pWriter->EndNode(_T("v:shape"));
|
||||
pWriter->EndNode(L"v:shape");
|
||||
}
|
||||
else
|
||||
{
|
||||
pWriter->StartNode(_T("v:rect"));
|
||||
pWriter->StartNode(L"v:rect");
|
||||
|
||||
pWriter->StartAttributes();
|
||||
|
||||
if (XMLWRITER_DOC_TYPE_XLSX == pWriter->m_lDocType)
|
||||
{
|
||||
pWriter->WriteAttribute(_T("id"), strSpid);
|
||||
pWriter->WriteAttribute(L"id", strSpid);
|
||||
}
|
||||
else
|
||||
{
|
||||
pWriter->WriteAttribute(_T("id"), strId);
|
||||
pWriter->WriteAttribute(_T("o:spid"), strSpid);
|
||||
pWriter->WriteAttribute(L"id", strId);
|
||||
pWriter->WriteAttribute(L"o:spid", strSpid);
|
||||
}
|
||||
|
||||
if (oStylesWriter.GetSize() == 0)
|
||||
{
|
||||
pWriter->WriteAttribute(_T("style"), pWriter->m_strStyleMain);
|
||||
pWriter->WriteAttribute(L"style", pWriter->m_strStyleMain);
|
||||
}
|
||||
else
|
||||
{
|
||||
pWriter->WriteAttribute(_T("style"), pWriter->m_strStyleMain + oStylesWriter.GetXmlString());
|
||||
pWriter->WriteAttribute(L"style", pWriter->m_strStyleMain + oStylesWriter.GetXmlString());
|
||||
}
|
||||
if(bOle)
|
||||
{
|
||||
pWriter->WriteAttribute(_T("filled"), L"f");
|
||||
pWriter->WriteAttribute(_T("stroked"), L"f");
|
||||
pWriter->WriteAttribute(L"filled", L"f");
|
||||
pWriter->WriteAttribute(L"stroked", L"f");
|
||||
}
|
||||
|
||||
pWriter->EndAttributes();
|
||||
|
||||
if (blipFill.blip.is_init() && blipFill.blip->embed.is_init())
|
||||
{
|
||||
pWriter->StartNode(_T("v:imagedata"));
|
||||
pWriter->StartNode(L"v:imagedata");
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(_T("r:id"), blipFill.blip->embed->ToString());
|
||||
pWriter->WriteAttribute(_T("o:title"), std::wstring(_T("")));
|
||||
pWriter->WriteAttribute(L"r:id", blipFill.blip->embed->ToString());
|
||||
pWriter->WriteAttribute(L"o:title", L"");
|
||||
pWriter->EndAttributes();
|
||||
pWriter->EndNode(_T("v:imagedata"));
|
||||
pWriter->EndNode(L"v:imagedata");
|
||||
}
|
||||
|
||||
pWriter->EndNode(_T("v:rect"));
|
||||
pWriter->EndNode(L"v:rect");
|
||||
}
|
||||
pWriter->m_strStyleMain = _T("");
|
||||
pWriter->m_strStyleMain.clear();
|
||||
|
||||
if(bOle)
|
||||
{
|
||||
@ -783,12 +792,12 @@ namespace PPTX
|
||||
int imgW = node.GetAttributeInt(std::wstring(L"imgW"), 0);
|
||||
if(imgW > 0)
|
||||
{
|
||||
oleObject->m_oDxaOrig = Emu_To_Twips(imgW);
|
||||
oleObject->m_oDxaOrig = (int)Emu_To_Twips(imgW);
|
||||
}
|
||||
int imgH = node.GetAttributeInt(std::wstring(L"imgH"), 0);
|
||||
if(imgH > 0)
|
||||
{
|
||||
oleObject->m_oDyaOrig = Emu_To_Twips(imgH);
|
||||
oleObject->m_oDyaOrig = (int)Emu_To_Twips(imgH);
|
||||
}
|
||||
if(oleObject->m_oId.IsInit())
|
||||
{
|
||||
|
||||
@ -399,7 +399,7 @@ namespace PPTX
|
||||
pReader->Seek(_end_rec);
|
||||
}
|
||||
|
||||
void toXmlWriterVML(NSBinPptxRW::CXmlWriter* pWriter, smart_ptr<PPTX::WrapperFile>& oTheme, smart_ptr<PPTX::WrapperWritingElement>& oClrMap);
|
||||
void toXmlWriterVML(NSBinPptxRW::CXmlWriter* pWriter, smart_ptr<PPTX::WrapperFile>& oTheme, smart_ptr<PPTX::WrapperWritingElement>& oClrMap, bool in_group = false);
|
||||
void fromXMLOle(XmlUtils::CXmlNode& node);
|
||||
public:
|
||||
|
||||
|
||||
@ -37,182 +37,8 @@
|
||||
#include "../Slide.h"
|
||||
#include "SpTree.h"
|
||||
|
||||
#include "../../../ASCOfficeOdfFileW/source/Oox2OdfConverter/VmlShapeTypes2Oox.h"
|
||||
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
OOX::Vml::SptType static Spt2ShapeType(SimpleTypes::EShapeType type)
|
||||
{
|
||||
switch(type)
|
||||
{
|
||||
case SimpleTypes::shapetypeRect : return OOX::Vml::sptRectangle ;
|
||||
case SimpleTypes::shapetypeRoundRect : return OOX::Vml::sptRoundRectangle ;
|
||||
case SimpleTypes::shapetypeEllipse : return OOX::Vml::sptEllipse ;
|
||||
case SimpleTypes::shapetypeDiamond : return OOX::Vml::sptDiamond ;
|
||||
case SimpleTypes::shapetypeTriangle : return OOX::Vml::sptIsocelesTriangle ;
|
||||
case SimpleTypes::shapetypeRtTriangle : return OOX::Vml::sptRightTriangle ;
|
||||
case SimpleTypes::shapetypeParallelogram : return OOX::Vml::sptParallelogram ;
|
||||
case SimpleTypes::shapetypeTrapezoid : return OOX::Vml::sptTrapezoid ;
|
||||
case SimpleTypes::shapetypeHexagon : return OOX::Vml::sptHexagon ;
|
||||
case SimpleTypes::shapetypeOctagon : return OOX::Vml::sptOctagon ;
|
||||
case SimpleTypes::shapetypePlus : return OOX::Vml::sptPlus ;
|
||||
case SimpleTypes::shapetypeStar5 : return OOX::Vml::sptStar ;
|
||||
case SimpleTypes::shapetypeRightArrow: return OOX::Vml::sptArrow ;
|
||||
case SimpleTypes::shapetypeThickArrow: return OOX::Vml::sptThickArrow ;
|
||||
case SimpleTypes::shapetypeHomePlate : return OOX::Vml::sptHomePlate ;
|
||||
case SimpleTypes::shapetypeCube : return OOX::Vml::sptCube ;
|
||||
case SimpleTypes::shapetypeBallon : return OOX::Vml::sptBalloon ;
|
||||
// case SimpleTypes::shapetypeIrregularSeal1: return OOX::Vml::sptSeal ;
|
||||
case SimpleTypes::shapetypeArc : return OOX::Vml::sptArc ;
|
||||
case SimpleTypes::shapetypeLine : return OOX::Vml::sptLine ;
|
||||
case SimpleTypes::shapetypePlaque : return OOX::Vml::sptPlaque ;
|
||||
case SimpleTypes::shapetypeCan : return OOX::Vml::sptCan ;
|
||||
case SimpleTypes::shapetypeDonut : return OOX::Vml::sptDonut ;
|
||||
// case SimpleTypes::shapetypeTextSimple : return OOX::Vml::sptTextSimple ;
|
||||
// case SimpleTypes::shapetypeTextOctagon : return OOX::Vml::sptTextOctagon ;
|
||||
// case SimpleTypes::shapetypeTextHexagon : return OOX::Vml::sptTextHexagon ;
|
||||
// case SimpleTypes::shapetypeTextCurve : return OOX::Vml::sptTextCurve ;
|
||||
// case SimpleTypes::shapetypeTextWave : return OOX::Vml::sptTextWave ;
|
||||
// case SimpleTypes::shapetypeTextRing : return OOX::Vml::sptTextRing ;
|
||||
// case SimpleTypes::shapetypeTextOnCurve : return OOX::Vml::sptTextOnCurve ;
|
||||
// case SimpleTypes::shapetypeTextOnRing : return OOX::Vml::sptTextOnRing ;
|
||||
case SimpleTypes::shapetypeStraightConnector1: return OOX::Vml::sptStraightConnector1 ;
|
||||
case SimpleTypes::shapetypeBentConnector2 : return OOX::Vml::sptBentConnector2 ;
|
||||
case SimpleTypes::shapetypeBentConnector3 : return OOX::Vml::sptBentConnector3 ;
|
||||
case SimpleTypes::shapetypeBentConnector4 : return OOX::Vml::sptBentConnector4 ;
|
||||
case SimpleTypes::shapetypeBentConnector5 : return OOX::Vml::sptBentConnector5 ;
|
||||
case SimpleTypes::shapetypeCurvedConnector2 : return OOX::Vml::sptCurvedConnector2 ;
|
||||
case SimpleTypes::shapetypeCurvedConnector3 : return OOX::Vml::sptCurvedConnector3 ;
|
||||
case SimpleTypes::shapetypeCurvedConnector4 : return OOX::Vml::sptCurvedConnector4 ;
|
||||
case SimpleTypes::shapetypeCurvedConnector5 : return OOX::Vml::sptCurvedConnector5 ;
|
||||
case SimpleTypes::shapetypeCallout1 : return OOX::Vml::sptCallout1 ;
|
||||
case SimpleTypes::shapetypeCallout2 : return OOX::Vml::sptCallout2 ;
|
||||
case SimpleTypes::shapetypeCallout3 : return OOX::Vml::sptCallout3 ;
|
||||
case SimpleTypes::shapetypeAccentCallout1 : return OOX::Vml::sptAccentCallout1 ;
|
||||
case SimpleTypes::shapetypeAccentCallout2 : return OOX::Vml::sptAccentCallout2 ;
|
||||
case SimpleTypes::shapetypeAccentCallout3 : return OOX::Vml::sptAccentCallout3 ;
|
||||
case SimpleTypes::shapetypeAccentBorderCallout1 : return OOX::Vml::sptAccentBorderCallout1 ;
|
||||
case SimpleTypes::shapetypeAccentBorderCallout2 : return OOX::Vml::sptAccentBorderCallout2 ;
|
||||
case SimpleTypes::shapetypeAccentBorderCallout3 : return OOX::Vml::sptAccentBorderCallout3 ;
|
||||
case SimpleTypes::shapetypeRibbon : return OOX::Vml::sptRibbon ;
|
||||
case SimpleTypes::shapetypeRibbon2 : return OOX::Vml::sptRibbon2 ;
|
||||
case SimpleTypes::shapetypeChevron : return OOX::Vml::sptChevron ;
|
||||
case SimpleTypes::shapetypePentagon : return OOX::Vml::sptPentagon ;
|
||||
case SimpleTypes::shapetypeNoSmoking : return OOX::Vml::sptNoSmoking ;
|
||||
case SimpleTypes::shapetypeStar8 : return OOX::Vml::sptSeal8 ;
|
||||
case SimpleTypes::shapetypeStar16 : return OOX::Vml::sptSeal16 ;
|
||||
case SimpleTypes::shapetypeStar32 : return OOX::Vml::sptSeal32 ;
|
||||
case SimpleTypes::shapetypeWedgeRectCallout : return OOX::Vml::sptWedgeRectCallout ;
|
||||
case SimpleTypes::shapetypeWedgeRoundRectCallout : return OOX::Vml::sptWedgeRRectCallout ;
|
||||
case SimpleTypes::shapetypeWedgeEllipseCallout : return OOX::Vml::sptWedgeEllipseCallout ;
|
||||
case SimpleTypes::shapetypeWave : return OOX::Vml::sptWave ;
|
||||
case SimpleTypes::shapetypeFoldedCorner : return OOX::Vml::sptFoldedCorner ;
|
||||
case SimpleTypes::shapetypeLeftArrow : return OOX::Vml::sptLeftArrow ;
|
||||
case SimpleTypes::shapetypeDownArrow : return OOX::Vml::sptDownArrow ;
|
||||
case SimpleTypes::shapetypeUpArrow : return OOX::Vml::sptUpArrow ;
|
||||
case SimpleTypes::shapetypeLeftRightArrow : return OOX::Vml::sptLeftRightArrow ;
|
||||
case SimpleTypes::shapetypeUpDownArrow : return OOX::Vml::sptUpDownArrow ;
|
||||
case SimpleTypes::shapetypeIrregularSeal1 : return OOX::Vml::sptIrregularSeal1 ;
|
||||
case SimpleTypes::shapetypeIrregularSeal2 : return OOX::Vml::sptIrregularSeal2 ;
|
||||
case SimpleTypes::shapetypeLightningBolt : return OOX::Vml::sptLightningBolt ;
|
||||
case SimpleTypes::shapetypeHeart : return OOX::Vml::sptHeart ;
|
||||
case SimpleTypes::shapetypeQuadArrow : return OOX::Vml::sptQuadArrow ;
|
||||
case SimpleTypes::shapetypeLeftArrowCallout : return OOX::Vml::sptLeftArrowCallout ;
|
||||
case SimpleTypes::shapetypeRightArrowCallout : return OOX::Vml::sptRightArrowCallout ;
|
||||
case SimpleTypes::shapetypeUpArrowCallout : return OOX::Vml::sptUpArrowCallout ;
|
||||
case SimpleTypes::shapetypeDownArrowCallout : return OOX::Vml::sptDownArrowCallout ;
|
||||
case SimpleTypes::shapetypeLeftRightArrowCallout : return OOX::Vml::sptLeftRightArrowCallout ;
|
||||
case SimpleTypes::shapetypeUpDownArrowCallout : return OOX::Vml::sptUpDownArrowCallout ;
|
||||
case SimpleTypes::shapetypeQuadArrowCallout : return OOX::Vml::sptQuadArrowCallout ;
|
||||
case SimpleTypes::shapetypeBevel : return OOX::Vml::sptBevel ;
|
||||
case SimpleTypes::shapetypeLeftBracket : return OOX::Vml::sptLeftBracket ;
|
||||
case SimpleTypes::shapetypeRightBracket : return OOX::Vml::sptRightBracket ;
|
||||
case SimpleTypes::shapetypeLeftBrace : return OOX::Vml::sptLeftBrace ;
|
||||
case SimpleTypes::shapetypeRightBrace : return OOX::Vml::sptRightBrace ;
|
||||
case SimpleTypes::shapetypeLeftUpArrow : return OOX::Vml::sptLeftUpArrow ;
|
||||
case SimpleTypes::shapetypeBentUpArrow : return OOX::Vml::sptBentUpArrow ;
|
||||
case SimpleTypes::shapetypeBentArrow : return OOX::Vml::sptBentArrow ;
|
||||
case SimpleTypes::shapetypeStar24 : return OOX::Vml::sptSeal24 ;
|
||||
case SimpleTypes::shapetypeStripedRightArrow : return OOX::Vml::sptStripedRightArrow ;
|
||||
case SimpleTypes::shapetypeNotchedRightArrow : return OOX::Vml::sptNotchedRightArrow ;
|
||||
case SimpleTypes::shapetypeBlockArc : return OOX::Vml::sptBlockArc ;
|
||||
case SimpleTypes::shapetypeSmileyFace : return OOX::Vml::sptSmileyFace ;
|
||||
case SimpleTypes::shapetypeVerticalScroll : return OOX::Vml::sptVerticalScroll ;
|
||||
case SimpleTypes::shapetypeHorizontalScroll : return OOX::Vml::sptHorizontalScroll ;
|
||||
case SimpleTypes::shapetypeCircularArrow : return OOX::Vml::sptCircularArrow ;
|
||||
// case SimpleTypes::shapetypeNotchedCircularArrow : return OOX::Vml::sptNotchedCircularArrow ;
|
||||
case SimpleTypes::shapetypeUturnArrow : return OOX::Vml::sptUturnArrow ;
|
||||
case SimpleTypes::shapetypeCurvedRightArrow : return OOX::Vml::sptCurvedRightArrow ;
|
||||
case SimpleTypes::shapetypeCurvedLeftArrow : return OOX::Vml::sptCurvedLeftArrow ;
|
||||
case SimpleTypes::shapetypeCurvedUpArrow : return OOX::Vml::sptCurvedUpArrow ;
|
||||
case SimpleTypes::shapetypeCurvedDownArrow : return OOX::Vml::sptCurvedDownArrow ;
|
||||
case SimpleTypes::shapetypeCloudCallout : return OOX::Vml::sptCloudCallout ;
|
||||
case SimpleTypes::shapetypeEllipseRibbon : return OOX::Vml::sptEllipseRibbon ;
|
||||
case SimpleTypes::shapetypeEllipseRibbon2 : return OOX::Vml::sptEllipseRibbon2 ;
|
||||
case SimpleTypes::shapetypeFlowChartProcess : return OOX::Vml::sptFlowChartProcess ;
|
||||
case SimpleTypes::shapetypeFlowChartDecision : return OOX::Vml::sptFlowChartDecision ;
|
||||
case SimpleTypes::shapetypeFlowChartInputOutput : return OOX::Vml::sptFlowChartInputOutput ;
|
||||
case SimpleTypes::shapetypeFlowChartInternalStorage : return OOX::Vml::sptFlowChartInternalStorage ;
|
||||
case SimpleTypes::shapetypeFlowChartDocument : return OOX::Vml::sptFlowChartDocument ;
|
||||
case SimpleTypes::shapetypeFlowChartMultidocument : return OOX::Vml::sptFlowChartMultidocument ;
|
||||
case SimpleTypes::shapetypeFlowChartTerminator : return OOX::Vml::sptFlowChartTerminator ;
|
||||
case SimpleTypes::shapetypeFlowChartPreparation : return OOX::Vml::sptFlowChartPreparation ;
|
||||
case SimpleTypes::shapetypeFlowChartManualInput : return OOX::Vml::sptFlowChartManualInput ;
|
||||
case SimpleTypes::shapetypeFlowChartManualOperation : return OOX::Vml::sptFlowChartManualOperation ;
|
||||
case SimpleTypes::shapetypeFlowChartConnector : return OOX::Vml::sptFlowChartConnector ;
|
||||
case SimpleTypes::shapetypeFlowChartPunchedCard : return OOX::Vml::sptFlowChartPunchedCard ;
|
||||
case SimpleTypes::shapetypeFlowChartPunchedTape : return OOX::Vml::sptFlowChartPunchedTape ;
|
||||
case SimpleTypes::shapetypeFlowChartSummingJunction : return OOX::Vml::sptFlowChartSummingJunction ;
|
||||
case SimpleTypes::shapetypeFlowChartOr : return OOX::Vml::sptFlowChartOr ;
|
||||
case SimpleTypes::shapetypeFlowChartCollate : return OOX::Vml::sptFlowChartCollate ;
|
||||
case SimpleTypes::shapetypeFlowChartSort : return OOX::Vml::sptFlowChartSort ;
|
||||
case SimpleTypes::shapetypeFlowChartExtract : return OOX::Vml::sptFlowChartExtract ;
|
||||
case SimpleTypes::shapetypeFlowChartMerge : return OOX::Vml::sptFlowChartMerge ;
|
||||
//case SimpleTypes::shapetypeChartOfflineStorage : return OOX::Vml::sptFlowChartOfflineStorage ;
|
||||
case SimpleTypes::shapetypeFlowChartOnlineStorage: return OOX::Vml::sptFlowChartOnlineStorage ;
|
||||
case SimpleTypes::shapetypeFlowChartMagneticTape : return OOX::Vml::sptFlowChartMagneticTape ;
|
||||
case SimpleTypes::shapetypeFlowChartMagneticDisk : return OOX::Vml::sptFlowChartMagneticDisk ;
|
||||
case SimpleTypes::shapetypeFlowChartMagneticDrum : return OOX::Vml::sptFlowChartMagneticDrum ;
|
||||
case SimpleTypes::shapetypeFlowChartDisplay : return OOX::Vml::sptFlowChartDisplay ;
|
||||
case SimpleTypes::shapetypeFlowChartDelay : return OOX::Vml::sptFlowChartDelay ;
|
||||
// case SimpleTypes::shapetypeTextWave3 : return OOX::Vml::sptTextWave3 ;
|
||||
case SimpleTypes::shapetypeTextInflateBottom : return OOX::Vml::sptTextInflateBottom ;
|
||||
case SimpleTypes::shapetypeTextDeflateBottom : return OOX::Vml::sptTextDeflateBottom ;
|
||||
case SimpleTypes::shapetypeTextInflateTop : return OOX::Vml::sptTextInflateTop ;
|
||||
case SimpleTypes::shapetypeTextDeflateTop : return OOX::Vml::sptTextDeflateTop ;
|
||||
case SimpleTypes::shapetypeTextDeflateInflate: return OOX::Vml::sptTextDeflateInflate ;
|
||||
case SimpleTypes::shapetypeTextFadeRight : return OOX::Vml::sptTextFadeRight ;
|
||||
case SimpleTypes::shapetypeTextFadeLeft : return OOX::Vml::sptTextFadeLeft ;
|
||||
case SimpleTypes::shapetypeTextFadeUp : return OOX::Vml::sptTextFadeUp ;
|
||||
case SimpleTypes::shapetypeTextFadeDown : return OOX::Vml::sptTextFadeDown ;
|
||||
case SimpleTypes::shapetypeBorderCallout1 : return OOX::Vml::sptBorderCallout1 ;
|
||||
case SimpleTypes::shapetypeBorderCallout2 : return OOX::Vml::sptBorderCallout2 ;
|
||||
case SimpleTypes::shapetypeBorderCallout3 : return OOX::Vml::sptBorderCallout3 ;
|
||||
case SimpleTypes::shapetypeLeftRightUpArrow : return OOX::Vml::sptLeftRightUpArrow ;
|
||||
case SimpleTypes::shapetypeSun : return OOX::Vml::sptSun ;
|
||||
case SimpleTypes::shapetypeMoon : return OOX::Vml::sptMoon ;
|
||||
case SimpleTypes::shapetypeBracketPair : return OOX::Vml::sptBracketPair ;
|
||||
case SimpleTypes::shapetypeBracePair : return OOX::Vml::sptBracePair ;
|
||||
case SimpleTypes::shapetypeStar4 : return OOX::Vml::sptSeal4 ;
|
||||
case SimpleTypes::shapetypeDoubleWave : return OOX::Vml::sptDoubleWave ;
|
||||
case SimpleTypes::shapetypeActionButtonBlank : return OOX::Vml::sptActionButtonBlank ;
|
||||
case SimpleTypes::shapetypeActionButtonHome : return OOX::Vml::sptActionButtonHome ;
|
||||
case SimpleTypes::shapetypeActionButtonHelp : return OOX::Vml::sptActionButtonHelp ;
|
||||
case SimpleTypes::shapetypeActionButtonInformation : return OOX::Vml::sptActionButtonInformation ;
|
||||
case SimpleTypes::shapetypeActionButtonForwardNext : return OOX::Vml::sptActionButtonForwardNext ;
|
||||
case SimpleTypes::shapetypeActionButtonBackPrevious : return OOX::Vml::sptActionButtonBackPrevious ;
|
||||
case SimpleTypes::shapetypeActionButtonEnd : return OOX::Vml::sptActionButtonEnd ;
|
||||
case SimpleTypes::shapetypeActionButtonBeginning : return OOX::Vml::sptActionButtonBeginning ;
|
||||
case SimpleTypes::shapetypeActionButtonReturn : return OOX::Vml::sptActionButtonReturn ;
|
||||
case SimpleTypes::shapetypeActionButtonDocument : return OOX::Vml::sptActionButtonDocument ;
|
||||
case SimpleTypes::shapetypeActionButtonSound : return OOX::Vml::sptActionButtonSound ;
|
||||
case SimpleTypes::shapetypeActionButtonMovie : return OOX::Vml::sptActionButtonMovie ;
|
||||
default:
|
||||
return OOX::Vml::sptNotPrimitive;
|
||||
}
|
||||
}
|
||||
|
||||
namespace Logic
|
||||
{
|
||||
Shape::Shape()
|
||||
@ -569,24 +395,38 @@ namespace PPTX
|
||||
}
|
||||
}
|
||||
|
||||
void Shape::toXmlWriterVML(NSBinPptxRW::CXmlWriter *pWriter, NSCommon::smart_ptr<PPTX::WrapperFile>& oTheme, NSCommon::smart_ptr<PPTX::WrapperWritingElement>& oClrMap)
|
||||
void Shape::toXmlWriterVML(NSBinPptxRW::CXmlWriter *pWriter, NSCommon::smart_ptr<PPTX::WrapperFile>& oTheme, NSCommon::smart_ptr<PPTX::WrapperWritingElement>& oClrMap, bool in_group)
|
||||
{
|
||||
std::wstring strPath = _T("");
|
||||
std::wstring strTextRect = _T("");
|
||||
std::wstring strPath, strTextRect;
|
||||
bool bOle = false;
|
||||
SimpleTypes::Vml::SptType vmlPrst = SimpleTypes::Vml::sptNotPrimitive;
|
||||
|
||||
LONG lW = 43200, lH = 43200;
|
||||
int dL = 0, dT = 0, dW = 0, dH = 0;
|
||||
|
||||
if (spPr.Geometry.is<PrstGeom>())
|
||||
{
|
||||
const PPTX::Logic::PrstGeom & lpGeom = spPr.Geometry.as<PPTX::Logic::PrstGeom>();
|
||||
|
||||
SimpleTypes::CShapeType<> ooxPrst = SimpleTypes::CShapeType<>(lpGeom.prst.get());
|
||||
vmlPrst = OOX::PrstGeom2VmlShapeType( ooxPrst.GetValue());
|
||||
}
|
||||
|
||||
LONG lW = 43200;
|
||||
LONG lH = 43200;
|
||||
if (spPr.xfrm.is_init())
|
||||
{
|
||||
if (spPr.xfrm->offX.is_init()) dL = *spPr.xfrm->offX;
|
||||
if (spPr.xfrm->offY.is_init()) dT = *spPr.xfrm->offY;
|
||||
if (spPr.xfrm->extX.is_init()) dW = *spPr.xfrm->extX;
|
||||
if (spPr.xfrm->extY.is_init()) dH = *spPr.xfrm->extY;
|
||||
|
||||
lW = spPr.xfrm->extX.get_value_or(43200);
|
||||
lH = spPr.xfrm->extY.get_value_or(43200);
|
||||
}
|
||||
bool bOle = false;
|
||||
|
||||
spPr.Geometry.ConvertToCustomVML(pWriter->m_pOOXToVMLRenderer, strPath, strTextRect, lW, lH);
|
||||
|
||||
std::wstring strId = L"shape " + std::to_wstring(pWriter->m_lObjectIdVML);
|
||||
std::wstring strSpid = L"_x" + std::to_wstring(0xFFFF & (pWriter->m_lObjectIdVML >> 16)) + L"_s" + std::to_wstring(0xFFFF & pWriter->m_lObjectIdVML);
|
||||
std::wstring strId = L"shape " + std::to_wstring(pWriter->m_lObjectIdVML);
|
||||
std::wstring strSpid = L"_x" + std::to_wstring(0xFFFF & (pWriter->m_lObjectIdVML >> 16)) + L"_s" + std::to_wstring(0xFFFF & pWriter->m_lObjectIdVML);
|
||||
pWriter->m_lObjectIdVML++;
|
||||
|
||||
std::wstring strFillAttr;
|
||||
@ -594,266 +434,144 @@ namespace PPTX
|
||||
std::wstring strFillNode;
|
||||
std::wstring strStrokeNode;;
|
||||
|
||||
CalculateFill(spPr, style, oTheme, oClrMap, strFillAttr, strFillNode, bOle);
|
||||
CalculateFill(spPr, style, oTheme, oClrMap, strFillAttr, strFillNode, bOle);
|
||||
CalculateLine(spPr, style, oTheme, oClrMap, strStrokeAttr, strStrokeNode, bOle);
|
||||
|
||||
if (!pWriter->m_strStyleMain.empty())
|
||||
pWriter->StartNode(L"v:shape");
|
||||
|
||||
pWriter->StartAttributes();
|
||||
|
||||
pWriter->WriteAttribute(L"id", strId);
|
||||
pWriter->WriteAttribute(L"o:spid", strSpid);
|
||||
|
||||
if (vmlPrst != SimpleTypes::Vml::sptNotPrimitive)
|
||||
pWriter->WriteAttribute(L"o:spt", (int)vmlPrst);
|
||||
|
||||
NSBinPptxRW::CXmlWriter oStylesWriter;
|
||||
if (pWriter->m_strStyleMain.empty())
|
||||
{
|
||||
pWriter->StartNode(L"v:shape");
|
||||
|
||||
pWriter->StartAttributes();
|
||||
|
||||
pWriter->WriteAttribute(L"id", strId);
|
||||
pWriter->WriteAttribute(L"o:spid", strSpid);
|
||||
|
||||
if (spPr.Geometry.is<PrstGeom>())
|
||||
oStylesWriter.WriteAttributeCSS(L"position", L"absolute");
|
||||
if (in_group)
|
||||
{
|
||||
const PPTX::Logic::PrstGeom & lpGeom = spPr.Geometry.as<PPTX::Logic::PrstGeom>();
|
||||
|
||||
SimpleTypes::CShapeType<> ooxPrst = SimpleTypes::CShapeType<>(lpGeom.prst.get());
|
||||
OOX::Vml::SptType vmlPrst = Spt2ShapeType( ooxPrst.GetValue());
|
||||
|
||||
if (vmlPrst != OOX::Vml::sptNotPrimitive)
|
||||
pWriter->WriteAttribute(L"o:spt", (int)vmlPrst);
|
||||
}
|
||||
|
||||
NSBinPptxRW::CXmlWriter oStylesWriter;
|
||||
if (spPr.xfrm.is_init())
|
||||
{
|
||||
if (spPr.xfrm->rot.is_init())
|
||||
{
|
||||
int nRot = (int)((double)(*(spPr.xfrm->rot)) / 60000.0);
|
||||
oStylesWriter.WriteAttributeCSS_int(_T("rotation"), nRot);
|
||||
}
|
||||
bool bIsFH = spPr.xfrm->flipH.get_value_or(false);
|
||||
bool bIsFV = spPr.xfrm->flipV.get_value_or(false);
|
||||
if (bIsFH && bIsFV)
|
||||
{
|
||||
oStylesWriter.WriteAttributeCSS(_T("flip"), _T("xy"));
|
||||
}
|
||||
else if (bIsFH)
|
||||
{
|
||||
oStylesWriter.WriteAttributeCSS(_T("flip"), _T("x"));
|
||||
}
|
||||
else if (bIsFV)
|
||||
{
|
||||
oStylesWriter.WriteAttributeCSS(_T("flip"), _T("y"));
|
||||
}
|
||||
}
|
||||
|
||||
if (txBody.is_init())
|
||||
{
|
||||
if (txBody->bodyPr.anchor.is_init())
|
||||
{
|
||||
std::wstring _strAnchor = txBody->bodyPr.anchor->get();
|
||||
if (_strAnchor == _T("t"))
|
||||
oStylesWriter.WriteAttributeCSS(_T("v-text-anchor"), _T("top"));
|
||||
else if (_strAnchor == _T("b"))
|
||||
oStylesWriter.WriteAttributeCSS(_T("v-text-anchor"), _T("bottom"));
|
||||
else if (_strAnchor == _T("ctr"))
|
||||
oStylesWriter.WriteAttributeCSS(_T("v-text-anchor"), _T("middle"));
|
||||
}
|
||||
}
|
||||
else if (TextBoxBodyPr.is_init())
|
||||
{
|
||||
if (TextBoxBodyPr->anchor.is_init())
|
||||
{
|
||||
std::wstring _strAnchor = TextBoxBodyPr->anchor->get();
|
||||
if (_strAnchor == _T("t"))
|
||||
oStylesWriter.WriteAttributeCSS(_T("v-text-anchor"), _T("top"));
|
||||
else if (_strAnchor == _T("b"))
|
||||
oStylesWriter.WriteAttributeCSS(_T("v-text-anchor"), _T("bottom"));
|
||||
else if (_strAnchor == _T("ctr"))
|
||||
oStylesWriter.WriteAttributeCSS(_T("v-text-anchor"), _T("middle"));
|
||||
}
|
||||
}
|
||||
|
||||
if (oStylesWriter.GetSize() == 0)
|
||||
{
|
||||
pWriter->WriteAttribute(_T("style"), pWriter->m_strStyleMain);
|
||||
oStylesWriter.WriteAttributeCSS_int(L"left", dL / 100);
|
||||
oStylesWriter.WriteAttributeCSS_int(L"top", dT / 100);
|
||||
oStylesWriter.WriteAttributeCSS_int(L"width", dW / 100);
|
||||
oStylesWriter.WriteAttributeCSS_int(L"height", dH / 100);
|
||||
}
|
||||
else
|
||||
{
|
||||
pWriter->WriteAttribute(_T("style"), pWriter->m_strStyleMain + oStylesWriter.GetXmlString());
|
||||
oStylesWriter.WriteAttributeCSS_int_pt(L"left", dL / 12700);
|
||||
oStylesWriter.WriteAttributeCSS_int_pt(L"top", dT / 12700);
|
||||
oStylesWriter.WriteAttributeCSS_int_pt(L"width", dW / 12700);
|
||||
oStylesWriter.WriteAttributeCSS_int_pt(L"height", dH / 12700);
|
||||
}
|
||||
if(!bOle)
|
||||
{
|
||||
pWriter->WriteAttribute(_T("coordsize"), (std::wstring)_T("100000,100000"));
|
||||
pWriter->WriteAttribute(_T("path"), strPath);
|
||||
}
|
||||
|
||||
if (!pWriter->m_strAttributesMain.empty())
|
||||
{
|
||||
pWriter->WriteString(pWriter->m_strAttributesMain);
|
||||
pWriter->m_strAttributesMain.clear();
|
||||
}
|
||||
|
||||
pWriter->WriteString(strFillAttr);
|
||||
pWriter->WriteString(strStrokeAttr);
|
||||
|
||||
pWriter->EndAttributes();
|
||||
|
||||
pWriter->StartNode(_T("v:path"));
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(_T("textboxrect"), strTextRect);
|
||||
pWriter->EndAttributes();
|
||||
pWriter->EndNode(_T("v:path"));
|
||||
|
||||
pWriter->WriteString(strFillNode);
|
||||
pWriter->WriteString(strStrokeNode);
|
||||
pWriter->WriteString(pWriter->m_strNodes);
|
||||
pWriter->m_strNodes = _T("");
|
||||
|
||||
if (TextBoxShape.is_init())
|
||||
{
|
||||
pWriter->StartNode(_T("v:textbox"));
|
||||
pWriter->EndAttributes();
|
||||
pWriter->WriteString(*TextBoxShape);
|
||||
pWriter->EndNode(_T("v:textbox"));
|
||||
}
|
||||
|
||||
pWriter->EndNode(_T("v:shape"));
|
||||
|
||||
pWriter->m_strStyleMain = _T("");
|
||||
}
|
||||
else
|
||||
if (spPr.xfrm.is_init())
|
||||
{
|
||||
int dL = 0;
|
||||
int dT = 0;
|
||||
int dW = 0;
|
||||
int dH = 0;
|
||||
|
||||
NSBinPptxRW::CXmlWriter oStylesWriter;
|
||||
if (spPr.xfrm.is_init())
|
||||
if (spPr.xfrm->rot.is_init())
|
||||
{
|
||||
if (spPr.xfrm->offX.is_init())
|
||||
dL = (*spPr.xfrm->offX) / 12700.;
|
||||
if (spPr.xfrm->offY.is_init())
|
||||
dT = (*spPr.xfrm->offY) / 12700.;
|
||||
if (spPr.xfrm->extX.is_init())
|
||||
dW = (*spPr.xfrm->extX) / 12700.;
|
||||
if (spPr.xfrm->extY.is_init())
|
||||
dH = (*spPr.xfrm->extY / 12700.);
|
||||
int nRot = (int)((double)(*(spPr.xfrm->rot)) / 60000.0);
|
||||
oStylesWriter.WriteAttributeCSS_int(L"rotation", nRot);
|
||||
}
|
||||
oStylesWriter.WriteAttributeCSS(L"position", L"absolute");
|
||||
oStylesWriter.WriteAttributeCSS_int_pt(L"left", dL);
|
||||
oStylesWriter.WriteAttributeCSS_int_pt(L"top", dT);
|
||||
oStylesWriter.WriteAttributeCSS_int_pt(L"width", dW);
|
||||
oStylesWriter.WriteAttributeCSS_int_pt(L"height", dH);
|
||||
|
||||
if (spPr.xfrm.is_init())
|
||||
bool bIsFH = spPr.xfrm->flipH.get_value_or(false);
|
||||
bool bIsFV = spPr.xfrm->flipV.get_value_or(false);
|
||||
if (bIsFH && bIsFV)
|
||||
{
|
||||
if (spPr.xfrm->rot.is_init())
|
||||
{
|
||||
int nRot = (int)((double)(*(spPr.xfrm->rot)) / 60000.0);
|
||||
oStylesWriter.WriteAttributeCSS_int(_T("rotation"), nRot);
|
||||
}
|
||||
bool bIsFH = spPr.xfrm->flipH.get_value_or(false);
|
||||
bool bIsFV = spPr.xfrm->flipV.get_value_or(false);
|
||||
if (bIsFH && bIsFV)
|
||||
{
|
||||
oStylesWriter.WriteAttributeCSS(_T("flip"), _T("xy"));
|
||||
}
|
||||
else if (bIsFH)
|
||||
{
|
||||
oStylesWriter.WriteAttributeCSS(_T("flip"), _T("x"));
|
||||
}
|
||||
else if (bIsFV)
|
||||
{
|
||||
oStylesWriter.WriteAttributeCSS(_T("flip"), _T("y"));
|
||||
}
|
||||
oStylesWriter.WriteAttributeCSS(L"flip", L"xy");
|
||||
}
|
||||
|
||||
if (txBody.is_init())
|
||||
else if (bIsFH)
|
||||
{
|
||||
if (txBody->bodyPr.anchor.is_init())
|
||||
{
|
||||
std::wstring _strAnchor = txBody->bodyPr.anchor->get();
|
||||
if (_strAnchor == _T("t"))
|
||||
oStylesWriter.WriteAttributeCSS(_T("v-text-anchor"), _T("top"));
|
||||
else if (_strAnchor == _T("b"))
|
||||
oStylesWriter.WriteAttributeCSS(_T("v-text-anchor"), _T("bottom"));
|
||||
else if (_strAnchor == _T("ctr"))
|
||||
oStylesWriter.WriteAttributeCSS(_T("v-text-anchor"), _T("middle"));
|
||||
}
|
||||
oStylesWriter.WriteAttributeCSS(L"flip", L"x");
|
||||
}
|
||||
else if (TextBoxBodyPr.is_init())
|
||||
else if (bIsFV)
|
||||
{
|
||||
if (TextBoxBodyPr->anchor.is_init())
|
||||
{
|
||||
std::wstring _strAnchor = TextBoxBodyPr->anchor->get();
|
||||
if (_strAnchor == _T("t"))
|
||||
oStylesWriter.WriteAttributeCSS(_T("v-text-anchor"), _T("top"));
|
||||
else if (_strAnchor == _T("b"))
|
||||
oStylesWriter.WriteAttributeCSS(_T("v-text-anchor"), _T("bottom"));
|
||||
else if (_strAnchor == _T("ctr"))
|
||||
oStylesWriter.WriteAttributeCSS(_T("v-text-anchor"), _T("middle"));
|
||||
}
|
||||
oStylesWriter.WriteAttributeCSS(L"flip", L"y");
|
||||
}
|
||||
|
||||
pWriter->StartNode(_T("v:shape"));
|
||||
|
||||
pWriter->StartAttributes();
|
||||
|
||||
pWriter->WriteAttribute(_T("id"), strId);
|
||||
pWriter->WriteAttribute(_T("o:spid"), strSpid);
|
||||
|
||||
if (spPr.Geometry.is<PrstGeom>())
|
||||
{
|
||||
const PPTX::Logic::PrstGeom & lpGeom = spPr.Geometry.as<PPTX::Logic::PrstGeom>();
|
||||
|
||||
SimpleTypes::CShapeType<> ooxPrst = SimpleTypes::CShapeType<>(lpGeom.prst.get());
|
||||
OOX::Vml::SptType vmlPrst = Spt2ShapeType( ooxPrst.GetValue());
|
||||
|
||||
if (vmlPrst != OOX::Vml::sptNotPrimitive)
|
||||
pWriter->WriteAttribute(L"o:spt", (int)vmlPrst);
|
||||
}
|
||||
pWriter->WriteAttribute(_T("style"), oStylesWriter.GetXmlString());
|
||||
|
||||
if(!bOle)
|
||||
{
|
||||
pWriter->WriteAttribute(_T("coordsize"), (std::wstring)_T("100000,100000"));
|
||||
pWriter->WriteAttribute(_T("path"), strPath);
|
||||
}
|
||||
|
||||
if (!pWriter->m_strAttributesMain.empty())
|
||||
{
|
||||
pWriter->WriteString(pWriter->m_strAttributesMain);
|
||||
pWriter->m_strAttributesMain.clear();
|
||||
}
|
||||
|
||||
pWriter->WriteString(strFillAttr);
|
||||
pWriter->WriteString(strStrokeAttr);
|
||||
|
||||
pWriter->EndAttributes();
|
||||
|
||||
pWriter->StartNode(_T("v:path"));
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(_T("textboxrect"), strTextRect);
|
||||
pWriter->EndAttributes();
|
||||
pWriter->EndNode(_T("v:path"));
|
||||
|
||||
pWriter->WriteString(strFillNode);
|
||||
pWriter->WriteString(strStrokeNode);
|
||||
|
||||
if (TextBoxShape.is_init())
|
||||
{
|
||||
pWriter->StartNode(_T("v:textbox"));
|
||||
pWriter->EndAttributes();
|
||||
pWriter->WriteString(*TextBoxShape);
|
||||
pWriter->EndNode(_T("v:textbox"));
|
||||
}
|
||||
|
||||
pWriter->EndNode(_T("v:shape"));
|
||||
}
|
||||
|
||||
if (txBody.is_init())
|
||||
{
|
||||
if (txBody->bodyPr.anchor.is_init())
|
||||
{
|
||||
std::wstring _strAnchor = txBody->bodyPr.anchor->get();
|
||||
if (_strAnchor == L"t")
|
||||
oStylesWriter.WriteAttributeCSS(L"v-text-anchor", L"top");
|
||||
else if (_strAnchor == L"b")
|
||||
oStylesWriter.WriteAttributeCSS(L"v-text-anchor", L"bottom");
|
||||
else if (_strAnchor == L"ctr")
|
||||
oStylesWriter.WriteAttributeCSS(L"v-text-anchor", L"middle");
|
||||
}
|
||||
}
|
||||
else if (TextBoxBodyPr.is_init())
|
||||
{
|
||||
if (TextBoxBodyPr->anchor.is_init())
|
||||
{
|
||||
std::wstring _strAnchor = TextBoxBodyPr->anchor->get();
|
||||
if (_strAnchor == L"t")
|
||||
oStylesWriter.WriteAttributeCSS(L"v-text-anchor", L"top");
|
||||
else if (_strAnchor == L"b")
|
||||
oStylesWriter.WriteAttributeCSS(L"v-text-anchor", L"bottom");
|
||||
else if (_strAnchor == _T("ctr"))
|
||||
oStylesWriter.WriteAttributeCSS(L"v-text-anchor", L"middle");
|
||||
}
|
||||
}
|
||||
|
||||
pWriter->WriteAttribute(L"style", pWriter->m_strStyleMain + oStylesWriter.GetXmlString());
|
||||
|
||||
if(!bOle)
|
||||
{
|
||||
//oStylesWriter.ClearNoAttack();
|
||||
//oStylesWriter.m_oWriter.AddSize(30);
|
||||
//oStylesWriter.m_oWriter.AddIntNoCheck(dW / 100);
|
||||
//oStylesWriter.m_oWriter.AddCharNoCheck(WCHAR(','));
|
||||
//oStylesWriter.m_oWriter.AddIntNoCheck(dH / 100);
|
||||
//pWriter->WriteAttribute(L"coordsize", oStylesWriter.GetXmlString());
|
||||
pWriter->WriteAttribute(L"coordsize", L"100000,100000");
|
||||
|
||||
pWriter->WriteAttribute(L"path", strPath);
|
||||
}
|
||||
|
||||
if (!pWriter->m_strAttributesMain.empty())
|
||||
{
|
||||
pWriter->WriteString(pWriter->m_strAttributesMain);
|
||||
pWriter->m_strAttributesMain.clear();
|
||||
}
|
||||
|
||||
pWriter->WriteString(strFillAttr);
|
||||
pWriter->WriteString(strStrokeAttr);
|
||||
|
||||
pWriter->EndAttributes();
|
||||
|
||||
pWriter->StartNode(L"v:path");
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(L"textboxrect", strTextRect);
|
||||
pWriter->EndAttributes();
|
||||
pWriter->EndNode(L"v:path");
|
||||
|
||||
pWriter->WriteString(strFillNode);
|
||||
pWriter->WriteString(strStrokeNode);
|
||||
|
||||
pWriter->WriteString(pWriter->m_strNodes);
|
||||
pWriter->m_strNodes.clear();
|
||||
|
||||
if (TextBoxShape.is_init())
|
||||
{
|
||||
pWriter->StartNode(L"v:textbox");
|
||||
pWriter->EndAttributes();
|
||||
pWriter->WriteString(*TextBoxShape);
|
||||
pWriter->EndNode(L"v:textbox");
|
||||
}
|
||||
|
||||
pWriter->EndNode(L"v:shape");
|
||||
|
||||
pWriter->m_strStyleMain.clear();
|
||||
}
|
||||
void Shape::toXmlWriterVMLBackground(NSBinPptxRW::CXmlWriter *pWriter, NSCommon::smart_ptr<PPTX::WrapperFile>& oTheme, NSCommon::smart_ptr<PPTX::WrapperWritingElement>& oClrMap)
|
||||
{
|
||||
std::wstring strFillAttr = _T("");
|
||||
std::wstring strFillNode = _T("");
|
||||
std::wstring strFillAttr, strFillNode;
|
||||
CalculateFill(spPr, style, oTheme, oClrMap, strFillAttr, strFillNode, false);
|
||||
|
||||
pWriter->StartNode(_T("v:background"));
|
||||
pWriter->StartNode(L"v:background");
|
||||
|
||||
pWriter->StartAttributes();
|
||||
|
||||
@ -871,7 +589,7 @@ namespace PPTX
|
||||
|
||||
pWriter->WriteString(strFillNode);
|
||||
|
||||
pWriter->EndNode(_T("v:background"));
|
||||
pWriter->EndNode(L"v:background");
|
||||
}
|
||||
} // namespace Logic
|
||||
} // namespace PPTX
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
#ifndef PPTX_LOGIC_SHAPE_INCLUDE_H_
|
||||
#define PPTX_LOGIC_SHAPE_INCLUDE_H_
|
||||
|
||||
#include "./../WrapperWritingElement.h"
|
||||
#include "../WrapperWritingElement.h"
|
||||
#include "NvSpPr.h"
|
||||
#include "SpPr.h"
|
||||
#include "ShapeStyle.h"
|
||||
@ -44,7 +44,230 @@
|
||||
#include "Ln.h"
|
||||
|
||||
#include "../../../ASCOfficeDocxFile2/DocWrapper/DocxSerializer.h"
|
||||
#include "../../../Common/DocxFormat/Source/Common/SimpleTypes_Vml.h"
|
||||
|
||||
namespace OOX
|
||||
{
|
||||
static SimpleTypes::Vml::SptType PrstGeom2VmlShapeType(SimpleTypes::EShapeType type)
|
||||
{
|
||||
switch(type)
|
||||
{
|
||||
case SimpleTypes::shapetypeRect : return SimpleTypes::Vml::sptRectangle ;
|
||||
case SimpleTypes::shapetypeRoundRect : return SimpleTypes::Vml::sptRoundRectangle ;
|
||||
case SimpleTypes::shapetypeEllipse : return SimpleTypes::Vml::sptEllipse ;
|
||||
case SimpleTypes::shapetypeDiamond : return SimpleTypes::Vml::sptDiamond ;
|
||||
case SimpleTypes::shapetypeTriangle : return SimpleTypes::Vml::sptIsocelesTriangle ;
|
||||
case SimpleTypes::shapetypeRtTriangle : return SimpleTypes::Vml::sptRightTriangle ;
|
||||
case SimpleTypes::shapetypeParallelogram : return SimpleTypes::Vml::sptParallelogram ;
|
||||
case SimpleTypes::shapetypeTrapezoid : return SimpleTypes::Vml::sptTrapezoid ;
|
||||
case SimpleTypes::shapetypeHexagon : return SimpleTypes::Vml::sptHexagon ;
|
||||
case SimpleTypes::shapetypeOctagon : return SimpleTypes::Vml::sptOctagon ;
|
||||
case SimpleTypes::shapetypePlus : return SimpleTypes::Vml::sptPlus ;
|
||||
case SimpleTypes::shapetypeStar5 : return SimpleTypes::Vml::sptStar ;
|
||||
case SimpleTypes::shapetypeRightArrow: return SimpleTypes::Vml::sptArrow ;
|
||||
case SimpleTypes::shapetypeThickArrow: return SimpleTypes::Vml::sptThickArrow ;
|
||||
case SimpleTypes::shapetypeHomePlate : return SimpleTypes::Vml::sptHomePlate ;
|
||||
case SimpleTypes::shapetypeCube : return SimpleTypes::Vml::sptCube ;
|
||||
case SimpleTypes::shapetypeBallon : return SimpleTypes::Vml::sptBalloon ;
|
||||
// case SimpleTypes::shapetypeIrregularSeal1: return SimpleTypes::Vml::sptSeal ;
|
||||
case SimpleTypes::shapetypeArc : return SimpleTypes::Vml::sptArc ;
|
||||
case SimpleTypes::shapetypeLine : return SimpleTypes::Vml::sptLine ;
|
||||
case SimpleTypes::shapetypePlaque : return SimpleTypes::Vml::sptPlaque ;
|
||||
case SimpleTypes::shapetypeCan : return SimpleTypes::Vml::sptCan ;
|
||||
case SimpleTypes::shapetypeDonut : return SimpleTypes::Vml::sptDonut ;
|
||||
// case SimpleTypes::shapetypeTextSimple : return SimpleTypes::Vml::sptTextSimple ;
|
||||
// case SimpleTypes::shapetypeTextOctagon : return SimpleTypes::Vml::sptTextOctagon ;
|
||||
// case SimpleTypes::shapetypeTextHexagon : return SimpleTypes::Vml::sptTextHexagon ;
|
||||
// case SimpleTypes::shapetypeTextCurve : return SimpleTypes::Vml::sptTextCurve ;
|
||||
// case SimpleTypes::shapetypeTextWave : return SimpleTypes::Vml::sptTextWave ;
|
||||
// case SimpleTypes::shapetypeTextRing : return SimpleTypes::Vml::sptTextRing ;
|
||||
// case SimpleTypes::shapetypeTextOnCurve : return SimpleTypes::Vml::sptTextOnCurve ;
|
||||
// case SimpleTypes::shapetypeTextOnRing : return SimpleTypes::Vml::sptTextOnRing ;
|
||||
case SimpleTypes::shapetypeStraightConnector1: return SimpleTypes::Vml::sptStraightConnector1 ;
|
||||
case SimpleTypes::shapetypeBentConnector2 : return SimpleTypes::Vml::sptBentConnector2 ;
|
||||
case SimpleTypes::shapetypeBentConnector3 : return SimpleTypes::Vml::sptBentConnector3 ;
|
||||
case SimpleTypes::shapetypeBentConnector4 : return SimpleTypes::Vml::sptBentConnector4 ;
|
||||
case SimpleTypes::shapetypeBentConnector5 : return SimpleTypes::Vml::sptBentConnector5 ;
|
||||
case SimpleTypes::shapetypeCurvedConnector2 : return SimpleTypes::Vml::sptCurvedConnector2 ;
|
||||
case SimpleTypes::shapetypeCurvedConnector3 : return SimpleTypes::Vml::sptCurvedConnector3 ;
|
||||
case SimpleTypes::shapetypeCurvedConnector4 : return SimpleTypes::Vml::sptCurvedConnector4 ;
|
||||
case SimpleTypes::shapetypeCurvedConnector5 : return SimpleTypes::Vml::sptCurvedConnector5 ;
|
||||
case SimpleTypes::shapetypeCallout1 : return SimpleTypes::Vml::sptCallout1 ;
|
||||
case SimpleTypes::shapetypeCallout2 : return SimpleTypes::Vml::sptCallout2 ;
|
||||
case SimpleTypes::shapetypeCallout3 : return SimpleTypes::Vml::sptCallout3 ;
|
||||
case SimpleTypes::shapetypeAccentCallout1 : return SimpleTypes::Vml::sptAccentCallout1 ;
|
||||
case SimpleTypes::shapetypeAccentCallout2 : return SimpleTypes::Vml::sptAccentCallout2 ;
|
||||
case SimpleTypes::shapetypeAccentCallout3 : return SimpleTypes::Vml::sptAccentCallout3 ;
|
||||
case SimpleTypes::shapetypeAccentBorderCallout1 : return SimpleTypes::Vml::sptAccentBorderCallout1 ;
|
||||
case SimpleTypes::shapetypeAccentBorderCallout2 : return SimpleTypes::Vml::sptAccentBorderCallout2 ;
|
||||
case SimpleTypes::shapetypeAccentBorderCallout3 : return SimpleTypes::Vml::sptAccentBorderCallout3 ;
|
||||
case SimpleTypes::shapetypeRibbon : return SimpleTypes::Vml::sptRibbon ;
|
||||
case SimpleTypes::shapetypeRibbon2 : return SimpleTypes::Vml::sptRibbon2 ;
|
||||
case SimpleTypes::shapetypeChevron : return SimpleTypes::Vml::sptChevron ;
|
||||
case SimpleTypes::shapetypePentagon : return SimpleTypes::Vml::sptPentagon ;
|
||||
case SimpleTypes::shapetypeNoSmoking : return SimpleTypes::Vml::sptNoSmoking ;
|
||||
case SimpleTypes::shapetypeStar8 : return SimpleTypes::Vml::sptSeal8 ;
|
||||
case SimpleTypes::shapetypeStar16 : return SimpleTypes::Vml::sptSeal16 ;
|
||||
case SimpleTypes::shapetypeStar32 : return SimpleTypes::Vml::sptSeal32 ;
|
||||
case SimpleTypes::shapetypeWedgeRectCallout : return SimpleTypes::Vml::sptWedgeRectCallout ;
|
||||
case SimpleTypes::shapetypeWedgeRoundRectCallout : return SimpleTypes::Vml::sptWedgeRRectCallout ;
|
||||
case SimpleTypes::shapetypeWedgeEllipseCallout : return SimpleTypes::Vml::sptWedgeEllipseCallout ;
|
||||
case SimpleTypes::shapetypeWave : return SimpleTypes::Vml::sptWave ;
|
||||
case SimpleTypes::shapetypeFoldedCorner : return SimpleTypes::Vml::sptFoldedCorner ;
|
||||
case SimpleTypes::shapetypeLeftArrow : return SimpleTypes::Vml::sptLeftArrow ;
|
||||
case SimpleTypes::shapetypeDownArrow : return SimpleTypes::Vml::sptDownArrow ;
|
||||
case SimpleTypes::shapetypeUpArrow : return SimpleTypes::Vml::sptUpArrow ;
|
||||
case SimpleTypes::shapetypeLeftRightArrow : return SimpleTypes::Vml::sptLeftRightArrow ;
|
||||
case SimpleTypes::shapetypeUpDownArrow : return SimpleTypes::Vml::sptUpDownArrow ;
|
||||
case SimpleTypes::shapetypeIrregularSeal1 : return SimpleTypes::Vml::sptIrregularSeal1 ;
|
||||
case SimpleTypes::shapetypeIrregularSeal2 : return SimpleTypes::Vml::sptIrregularSeal2 ;
|
||||
case SimpleTypes::shapetypeLightningBolt : return SimpleTypes::Vml::sptLightningBolt ;
|
||||
case SimpleTypes::shapetypeHeart : return SimpleTypes::Vml::sptHeart ;
|
||||
case SimpleTypes::shapetypeQuadArrow : return SimpleTypes::Vml::sptQuadArrow ;
|
||||
case SimpleTypes::shapetypeLeftArrowCallout : return SimpleTypes::Vml::sptLeftArrowCallout ;
|
||||
case SimpleTypes::shapetypeRightArrowCallout : return SimpleTypes::Vml::sptRightArrowCallout ;
|
||||
case SimpleTypes::shapetypeUpArrowCallout : return SimpleTypes::Vml::sptUpArrowCallout ;
|
||||
case SimpleTypes::shapetypeDownArrowCallout : return SimpleTypes::Vml::sptDownArrowCallout ;
|
||||
case SimpleTypes::shapetypeLeftRightArrowCallout : return SimpleTypes::Vml::sptLeftRightArrowCallout ;
|
||||
case SimpleTypes::shapetypeUpDownArrowCallout : return SimpleTypes::Vml::sptUpDownArrowCallout ;
|
||||
case SimpleTypes::shapetypeQuadArrowCallout : return SimpleTypes::Vml::sptQuadArrowCallout ;
|
||||
case SimpleTypes::shapetypeBevel : return SimpleTypes::Vml::sptBevel ;
|
||||
case SimpleTypes::shapetypeLeftBracket : return SimpleTypes::Vml::sptLeftBracket ;
|
||||
case SimpleTypes::shapetypeRightBracket : return SimpleTypes::Vml::sptRightBracket ;
|
||||
case SimpleTypes::shapetypeLeftBrace : return SimpleTypes::Vml::sptLeftBrace ;
|
||||
case SimpleTypes::shapetypeRightBrace : return SimpleTypes::Vml::sptRightBrace ;
|
||||
case SimpleTypes::shapetypeLeftUpArrow : return SimpleTypes::Vml::sptLeftUpArrow ;
|
||||
case SimpleTypes::shapetypeBentUpArrow : return SimpleTypes::Vml::sptBentUpArrow ;
|
||||
case SimpleTypes::shapetypeBentArrow : return SimpleTypes::Vml::sptBentArrow ;
|
||||
case SimpleTypes::shapetypeStar24 : return SimpleTypes::Vml::sptSeal24 ;
|
||||
case SimpleTypes::shapetypeStripedRightArrow : return SimpleTypes::Vml::sptStripedRightArrow ;
|
||||
case SimpleTypes::shapetypeNotchedRightArrow : return SimpleTypes::Vml::sptNotchedRightArrow ;
|
||||
case SimpleTypes::shapetypeBlockArc : return SimpleTypes::Vml::sptBlockArc ;
|
||||
case SimpleTypes::shapetypeSmileyFace : return SimpleTypes::Vml::sptSmileyFace ;
|
||||
case SimpleTypes::shapetypeVerticalScroll : return SimpleTypes::Vml::sptVerticalScroll ;
|
||||
case SimpleTypes::shapetypeHorizontalScroll : return SimpleTypes::Vml::sptHorizontalScroll ;
|
||||
case SimpleTypes::shapetypeCircularArrow : return SimpleTypes::Vml::sptCircularArrow ;
|
||||
// case SimpleTypes::shapetypeNotchedCircularArrow : return SimpleTypes::Vml::sptNotchedCircularArrow ;
|
||||
case SimpleTypes::shapetypeUturnArrow : return SimpleTypes::Vml::sptUturnArrow ;
|
||||
case SimpleTypes::shapetypeCurvedRightArrow : return SimpleTypes::Vml::sptCurvedRightArrow ;
|
||||
case SimpleTypes::shapetypeCurvedLeftArrow : return SimpleTypes::Vml::sptCurvedLeftArrow ;
|
||||
case SimpleTypes::shapetypeCurvedUpArrow : return SimpleTypes::Vml::sptCurvedUpArrow ;
|
||||
case SimpleTypes::shapetypeCurvedDownArrow : return SimpleTypes::Vml::sptCurvedDownArrow ;
|
||||
case SimpleTypes::shapetypeCloudCallout : return SimpleTypes::Vml::sptCloudCallout ;
|
||||
case SimpleTypes::shapetypeEllipseRibbon : return SimpleTypes::Vml::sptEllipseRibbon ;
|
||||
case SimpleTypes::shapetypeEllipseRibbon2 : return SimpleTypes::Vml::sptEllipseRibbon2 ;
|
||||
case SimpleTypes::shapetypeFlowChartProcess : return SimpleTypes::Vml::sptFlowChartProcess ;
|
||||
case SimpleTypes::shapetypeFlowChartDecision : return SimpleTypes::Vml::sptFlowChartDecision ;
|
||||
case SimpleTypes::shapetypeFlowChartInputOutput : return SimpleTypes::Vml::sptFlowChartInputOutput ;
|
||||
case SimpleTypes::shapetypeFlowChartInternalStorage : return SimpleTypes::Vml::sptFlowChartInternalStorage ;
|
||||
case SimpleTypes::shapetypeFlowChartDocument : return SimpleTypes::Vml::sptFlowChartDocument ;
|
||||
case SimpleTypes::shapetypeFlowChartMultidocument : return SimpleTypes::Vml::sptFlowChartMultidocument ;
|
||||
case SimpleTypes::shapetypeFlowChartTerminator : return SimpleTypes::Vml::sptFlowChartTerminator ;
|
||||
case SimpleTypes::shapetypeFlowChartPreparation : return SimpleTypes::Vml::sptFlowChartPreparation ;
|
||||
case SimpleTypes::shapetypeFlowChartManualInput : return SimpleTypes::Vml::sptFlowChartManualInput ;
|
||||
case SimpleTypes::shapetypeFlowChartManualOperation : return SimpleTypes::Vml::sptFlowChartManualOperation ;
|
||||
case SimpleTypes::shapetypeFlowChartConnector : return SimpleTypes::Vml::sptFlowChartConnector ;
|
||||
case SimpleTypes::shapetypeFlowChartPunchedCard : return SimpleTypes::Vml::sptFlowChartPunchedCard ;
|
||||
case SimpleTypes::shapetypeFlowChartPunchedTape : return SimpleTypes::Vml::sptFlowChartPunchedTape ;
|
||||
case SimpleTypes::shapetypeFlowChartSummingJunction : return SimpleTypes::Vml::sptFlowChartSummingJunction ;
|
||||
case SimpleTypes::shapetypeFlowChartOr : return SimpleTypes::Vml::sptFlowChartOr ;
|
||||
case SimpleTypes::shapetypeFlowChartCollate : return SimpleTypes::Vml::sptFlowChartCollate ;
|
||||
case SimpleTypes::shapetypeFlowChartSort : return SimpleTypes::Vml::sptFlowChartSort ;
|
||||
case SimpleTypes::shapetypeFlowChartExtract : return SimpleTypes::Vml::sptFlowChartExtract ;
|
||||
case SimpleTypes::shapetypeFlowChartMerge : return SimpleTypes::Vml::sptFlowChartMerge ;
|
||||
//case SimpleTypes::shapetypeChartOfflineStorage : return SimpleTypes::Vml::sptFlowChartOfflineStorage ;
|
||||
case SimpleTypes::shapetypeFlowChartOnlineStorage: return SimpleTypes::Vml::sptFlowChartOnlineStorage ;
|
||||
case SimpleTypes::shapetypeFlowChartMagneticTape : return SimpleTypes::Vml::sptFlowChartMagneticTape ;
|
||||
case SimpleTypes::shapetypeFlowChartMagneticDisk : return SimpleTypes::Vml::sptFlowChartMagneticDisk ;
|
||||
case SimpleTypes::shapetypeFlowChartMagneticDrum : return SimpleTypes::Vml::sptFlowChartMagneticDrum ;
|
||||
case SimpleTypes::shapetypeFlowChartDisplay : return SimpleTypes::Vml::sptFlowChartDisplay ;
|
||||
case SimpleTypes::shapetypeFlowChartDelay : return SimpleTypes::Vml::sptFlowChartDelay ;
|
||||
// case SimpleTypes::shapetypeTextWave3 : return SimpleTypes::Vml::sptTextWave3 ;
|
||||
case SimpleTypes::shapetypeTextInflateBottom : return SimpleTypes::Vml::sptTextInflateBottom ;
|
||||
case SimpleTypes::shapetypeTextDeflateBottom : return SimpleTypes::Vml::sptTextDeflateBottom ;
|
||||
case SimpleTypes::shapetypeTextInflateTop : return SimpleTypes::Vml::sptTextInflateTop ;
|
||||
case SimpleTypes::shapetypeTextDeflateTop : return SimpleTypes::Vml::sptTextDeflateTop ;
|
||||
case SimpleTypes::shapetypeTextDeflateInflate: return SimpleTypes::Vml::sptTextDeflateInflate ;
|
||||
case SimpleTypes::shapetypeTextFadeRight : return SimpleTypes::Vml::sptTextFadeRight ;
|
||||
case SimpleTypes::shapetypeTextFadeLeft : return SimpleTypes::Vml::sptTextFadeLeft ;
|
||||
case SimpleTypes::shapetypeTextFadeUp : return SimpleTypes::Vml::sptTextFadeUp ;
|
||||
case SimpleTypes::shapetypeTextFadeDown : return SimpleTypes::Vml::sptTextFadeDown ;
|
||||
case SimpleTypes::shapetypeBorderCallout1 : return SimpleTypes::Vml::sptBorderCallout1 ;
|
||||
case SimpleTypes::shapetypeBorderCallout2 : return SimpleTypes::Vml::sptBorderCallout2 ;
|
||||
case SimpleTypes::shapetypeBorderCallout3 : return SimpleTypes::Vml::sptBorderCallout3 ;
|
||||
case SimpleTypes::shapetypeLeftRightUpArrow : return SimpleTypes::Vml::sptLeftRightUpArrow ;
|
||||
case SimpleTypes::shapetypeSun : return SimpleTypes::Vml::sptSun ;
|
||||
case SimpleTypes::shapetypeMoon : return SimpleTypes::Vml::sptMoon ;
|
||||
case SimpleTypes::shapetypeBracketPair : return SimpleTypes::Vml::sptBracketPair ;
|
||||
case SimpleTypes::shapetypeBracePair : return SimpleTypes::Vml::sptBracePair ;
|
||||
case SimpleTypes::shapetypeStar4 : return SimpleTypes::Vml::sptSeal4 ;
|
||||
case SimpleTypes::shapetypeDoubleWave : return SimpleTypes::Vml::sptDoubleWave ;
|
||||
case SimpleTypes::shapetypeActionButtonBlank : return SimpleTypes::Vml::sptActionButtonBlank ;
|
||||
case SimpleTypes::shapetypeActionButtonHome : return SimpleTypes::Vml::sptActionButtonHome ;
|
||||
case SimpleTypes::shapetypeActionButtonHelp : return SimpleTypes::Vml::sptActionButtonHelp ;
|
||||
case SimpleTypes::shapetypeActionButtonInformation : return SimpleTypes::Vml::sptActionButtonInformation ;
|
||||
case SimpleTypes::shapetypeActionButtonForwardNext : return SimpleTypes::Vml::sptActionButtonForwardNext ;
|
||||
case SimpleTypes::shapetypeActionButtonBackPrevious : return SimpleTypes::Vml::sptActionButtonBackPrevious ;
|
||||
case SimpleTypes::shapetypeActionButtonEnd : return SimpleTypes::Vml::sptActionButtonEnd ;
|
||||
case SimpleTypes::shapetypeActionButtonBeginning : return SimpleTypes::Vml::sptActionButtonBeginning ;
|
||||
case SimpleTypes::shapetypeActionButtonReturn : return SimpleTypes::Vml::sptActionButtonReturn ;
|
||||
case SimpleTypes::shapetypeActionButtonDocument : return SimpleTypes::Vml::sptActionButtonDocument ;
|
||||
case SimpleTypes::shapetypeActionButtonSound : return SimpleTypes::Vml::sptActionButtonSound ;
|
||||
case SimpleTypes::shapetypeActionButtonMovie : return SimpleTypes::Vml::sptActionButtonMovie ;
|
||||
default:
|
||||
return SimpleTypes::Vml::sptNotPrimitive;
|
||||
}
|
||||
}
|
||||
|
||||
static SimpleTypes::Vml::SptType PrstTx2VmlShapeType(SimpleTypes::ETextShapeType type)
|
||||
{
|
||||
switch(type)
|
||||
{
|
||||
// case SimpleTypes::textshapetypeTextArchDown: return SimpleTypes::Vml::sptTextArchDown;
|
||||
case SimpleTypes::textshapetypeTextArchDownPour: return SimpleTypes::Vml::sptTextArchDownPour ;
|
||||
// case SimpleTypes::textshapetypeTextArchUp: return SimpleTypes::Vml::sptTextArchUp ;
|
||||
case SimpleTypes::textshapetypeTextArchUpPour: return SimpleTypes::Vml::sptTextArchUpPour ;
|
||||
// case SimpleTypes::textshapetypeTextButton: return SimpleTypes::Vml::sptTextButton ;
|
||||
case SimpleTypes::textshapetypeTextButtonPour: return SimpleTypes::Vml::sptTextButtonPour ;
|
||||
case SimpleTypes::textshapetypeTextCanDown: return SimpleTypes::Vml::sptTextCanDown ;
|
||||
case SimpleTypes::textshapetypeTextCanUp: return SimpleTypes::Vml::sptTextCanUp ;
|
||||
case SimpleTypes::textshapetypeTextCascadeDown: return SimpleTypes::Vml::sptTextCascadeDown;
|
||||
case SimpleTypes::textshapetypeTextCascadeUp: return SimpleTypes::Vml::sptTextCascadeUp ;
|
||||
case SimpleTypes::textshapetypeTextChevron: return SimpleTypes::Vml::sptTextChevron ;
|
||||
case SimpleTypes::textshapetypeTextChevronInverted: return SimpleTypes::Vml::sptTextChevronInverted ;
|
||||
// case SimpleTypes::textshapetypeTextCircle: return SimpleTypes::Vml::sptTextCircle ;
|
||||
case SimpleTypes::textshapetypeTextCirclePour: return SimpleTypes::Vml::sptTextCirclePour ;
|
||||
case SimpleTypes::textshapetypeTextCurveDown: return SimpleTypes::Vml::sptTextCurveDown ;
|
||||
case SimpleTypes::textshapetypeTextCurveUp: return SimpleTypes::Vml::sptTextCurveUp ;
|
||||
case SimpleTypes::textshapetypeTextDeflate: return SimpleTypes::Vml::sptTextDeflate ;
|
||||
case SimpleTypes::textshapetypeTextDeflateBottom: return SimpleTypes::Vml::sptTextDeflateBottom;
|
||||
case SimpleTypes::textshapetypeTextDeflateInflate: return SimpleTypes::Vml::sptTextDeflateInflate ;
|
||||
// case SimpleTypes::textshapetypeTextDeflateInflateDeflate: return SimpleTypes::Vml::sptDeflateInflateDeflate;
|
||||
case SimpleTypes::textshapetypeTextDeflateTop: return SimpleTypes::Vml::sptTextDeflateTop ;
|
||||
// case SimpleTypes::textshapetypeTextDoubleWave1: return SimpleTypes::Vml::sptTextDoubleWave ;
|
||||
case SimpleTypes::textshapetypeTextFadeDown: return SimpleTypes::Vml::sptTextFadeDown ;
|
||||
case SimpleTypes::textshapetypeTextFadeLeft: return SimpleTypes::Vml::sptTextFadeLeft ;
|
||||
case SimpleTypes::textshapetypeTextFadeRight: return SimpleTypes::Vml::sptTextFadeRight ;
|
||||
case SimpleTypes::textshapetypeTextFadeUp: return SimpleTypes::Vml::sptTextFadeUp ;
|
||||
case SimpleTypes::textshapetypeTextInflate: return SimpleTypes::Vml::sptTextPlainText ;
|
||||
case SimpleTypes::textshapetypeTextInflateBottom: return SimpleTypes::Vml::sptTextPlainText ;
|
||||
case SimpleTypes::textshapetypeTextInflateTop: return SimpleTypes::Vml::sptTextInflateTop ;
|
||||
case SimpleTypes::textshapetypeTextPlain: return SimpleTypes::Vml::sptTextPlainText ;
|
||||
case SimpleTypes::textshapetypeTextRingInside: return SimpleTypes::Vml::sptTextRingInside ;
|
||||
case SimpleTypes::textshapetypeTextRingOutside: return SimpleTypes::Vml::sptTextRingOutside ;
|
||||
case SimpleTypes::textshapetypeTextSlantDown: return SimpleTypes::Vml::sptTextSlantDown ;
|
||||
case SimpleTypes::textshapetypeTextSlantUp: return SimpleTypes::Vml::sptTextSlantUp;
|
||||
case SimpleTypes::textshapetypeTextStop: return SimpleTypes::Vml::sptTextStop ;
|
||||
case SimpleTypes::textshapetypeTextTriangle: return SimpleTypes::Vml::sptTextTriangle ;
|
||||
case SimpleTypes::textshapetypeTextTriangleInverted:return SimpleTypes::Vml::sptTextTriangleInverted ;
|
||||
case SimpleTypes::textshapetypeTextWave1: return SimpleTypes::Vml::sptTextWave1 ;
|
||||
case SimpleTypes::textshapetypeTextWave2: return SimpleTypes::Vml::sptTextWave2 ;
|
||||
case SimpleTypes::textshapetypeTextWave4: return SimpleTypes::Vml::sptTextWave4 ;
|
||||
default:
|
||||
return SimpleTypes::Vml::sptNotPrimitive;
|
||||
}
|
||||
}
|
||||
}
|
||||
namespace PPTX
|
||||
{
|
||||
namespace Logic
|
||||
@ -136,7 +359,7 @@ namespace PPTX
|
||||
pWriter->EndRecord();
|
||||
}
|
||||
|
||||
void toXmlWriterVML(NSBinPptxRW::CXmlWriter* pWriter, smart_ptr<PPTX::WrapperFile>& oTheme, smart_ptr<PPTX::WrapperWritingElement>& oClrMap);
|
||||
void toXmlWriterVML(NSBinPptxRW::CXmlWriter* pWriter, smart_ptr<PPTX::WrapperFile>& oTheme, smart_ptr<PPTX::WrapperWritingElement>& oClrMap, bool in_group = false);
|
||||
void toXmlWriterVMLBackground(NSBinPptxRW::CXmlWriter *pWriter, NSCommon::smart_ptr<PPTX::WrapperFile>& oTheme, NSCommon::smart_ptr<PPTX::WrapperWritingElement>& oClrMap);
|
||||
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
|
||||
@ -119,7 +119,8 @@ namespace PPTX
|
||||
if ((pDiagramDrawing) && (pDiagramDrawing->m_oShapeTree.IsInit()))
|
||||
{
|
||||
m_diag = pDiagramDrawing->m_oShapeTree;
|
||||
m_oCommonRels = smart_ptr<PPTX::CCommonRels>(dynamic_cast<PPTX::CCommonRels*>(pDiagramDrawing));
|
||||
m_oCommonRels = smart_ptr<PPTX::CCommonRels>( new PPTX::CCommonRels());
|
||||
m_oCommonRels->_read(pDiagramDrawing->m_oReadPath);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -41,7 +41,7 @@ namespace PPTX
|
||||
{
|
||||
namespace Logic
|
||||
{
|
||||
void SpTree::toXmlWriterVML(NSBinPptxRW::CXmlWriter *pWriter, NSCommon::smart_ptr<PPTX::WrapperFile>& _oTheme, NSCommon::smart_ptr<PPTX::WrapperWritingElement>& _oClrMap)
|
||||
void SpTree::toXmlWriterVML(NSBinPptxRW::CXmlWriter *pWriter, NSCommon::smart_ptr<PPTX::WrapperFile>& _oTheme, NSCommon::smart_ptr<PPTX::WrapperWritingElement>& _oClrMap, bool in_group)
|
||||
{
|
||||
smart_ptr<PPTX::Theme> oTheme = _oTheme.smart_dynamic_cast<PPTX::Theme>();
|
||||
smart_ptr<PPTX::Logic::ClrMap> oClrMap = oTheme.smart_dynamic_cast<PPTX::Logic::ClrMap>();
|
||||
@ -95,28 +95,31 @@ namespace PPTX
|
||||
}
|
||||
else
|
||||
{
|
||||
int dL = 0;
|
||||
int dT = 0;
|
||||
int dW = 0;
|
||||
int dH = 0;
|
||||
int dL = 0, dT = 0, dW = 0, dH = 0;
|
||||
if (grpSpPr.xfrm.is_init())
|
||||
{
|
||||
if (grpSpPr.xfrm->offX.is_init())
|
||||
dL = (*grpSpPr.xfrm->offX) / 12700.;
|
||||
if (grpSpPr.xfrm->offY.is_init())
|
||||
dT = (*grpSpPr.xfrm->offY) / 12700.;
|
||||
if (grpSpPr.xfrm->extX.is_init())
|
||||
dW = (*grpSpPr.xfrm->extX) / 12700.;
|
||||
if (grpSpPr.xfrm->extY.is_init())
|
||||
dH = (*grpSpPr.xfrm->extY) / 12700.;
|
||||
if (grpSpPr.xfrm->offX.is_init()) dL = *grpSpPr.xfrm->offX;
|
||||
if (grpSpPr.xfrm->offY.is_init()) dT = *grpSpPr.xfrm->offY;
|
||||
if (grpSpPr.xfrm->extX.is_init()) dW = *grpSpPr.xfrm->extX;
|
||||
if (grpSpPr.xfrm->extY.is_init()) dH = *grpSpPr.xfrm->extY;
|
||||
}
|
||||
|
||||
oStylesWriter.ClearNoAttack();
|
||||
oStylesWriter.WriteAttributeCSS(L"position", L"absolute");
|
||||
oStylesWriter.WriteAttributeCSS_int_pt(L"left", dL);
|
||||
oStylesWriter.WriteAttributeCSS_int_pt(L"top", dT);
|
||||
oStylesWriter.WriteAttributeCSS_int_pt(L"width", dW);
|
||||
oStylesWriter.WriteAttributeCSS_int_pt(L"height", dH);
|
||||
if (in_group)
|
||||
{
|
||||
oStylesWriter.WriteAttributeCSS_int(L"left", dL / 100.);
|
||||
oStylesWriter.WriteAttributeCSS_int(L"top", dT / 100.);
|
||||
oStylesWriter.WriteAttributeCSS_int(L"width", dW / 100.);
|
||||
oStylesWriter.WriteAttributeCSS_int(L"height", dH / 100.);
|
||||
}
|
||||
else
|
||||
{
|
||||
oStylesWriter.WriteAttributeCSS_int_pt(L"left", dL / 12700.);
|
||||
oStylesWriter.WriteAttributeCSS_int_pt(L"top", dT / 12700.);
|
||||
oStylesWriter.WriteAttributeCSS_int_pt(L"width", dW / 12700.);
|
||||
oStylesWriter.WriteAttributeCSS_int_pt(L"height", dH / 12700.);
|
||||
}
|
||||
|
||||
if (grpSpPr.xfrm.is_init())
|
||||
{
|
||||
@ -150,33 +153,27 @@ namespace PPTX
|
||||
pWriter->m_strAttributesMain.clear();
|
||||
}
|
||||
|
||||
int dL = 0;
|
||||
int dT = 0;
|
||||
int dW = 0;
|
||||
int dH = 0;
|
||||
int dL = 0, dT = 0, dW = 0, dH = 0;
|
||||
|
||||
if (grpSpPr.xfrm.is_init())
|
||||
{
|
||||
if (grpSpPr.xfrm->chOffX.is_init())
|
||||
dL = (*grpSpPr.xfrm->chOffX) / 12700.;
|
||||
if (grpSpPr.xfrm->chOffY.is_init())
|
||||
dT = (*grpSpPr.xfrm->chOffY) / 12700.;
|
||||
if (grpSpPr.xfrm->chExtX.is_init())
|
||||
dW = (*grpSpPr.xfrm->chExtX) / 12700.;
|
||||
if (grpSpPr.xfrm->chExtY.is_init())
|
||||
dH = (*grpSpPr.xfrm->chExtY) / 12700.;
|
||||
if (grpSpPr.xfrm->chOffX.is_init()) dL = *grpSpPr.xfrm->chOffX;
|
||||
if (grpSpPr.xfrm->chOffY.is_init()) dT = *grpSpPr.xfrm->chOffY;
|
||||
if (grpSpPr.xfrm->chExtX.is_init()) dW = *grpSpPr.xfrm->chExtX;
|
||||
if (grpSpPr.xfrm->chExtY.is_init()) dH = *grpSpPr.xfrm->chExtY;
|
||||
}
|
||||
oStylesWriter.ClearNoAttack();
|
||||
oStylesWriter.m_oWriter.AddSize(30);
|
||||
oStylesWriter.m_oWriter.AddIntNoCheck(dL);
|
||||
oStylesWriter.m_oWriter.AddIntNoCheck(dL / 100.);
|
||||
oStylesWriter.m_oWriter.AddCharNoCheck(WCHAR(','));
|
||||
oStylesWriter.m_oWriter.AddIntNoCheck(dT);
|
||||
oStylesWriter.m_oWriter.AddIntNoCheck(dT / 100.);
|
||||
pWriter->WriteAttribute(_T("coordorigin"), oStylesWriter.GetXmlString());
|
||||
|
||||
oStylesWriter.ClearNoAttack();
|
||||
oStylesWriter.m_oWriter.AddSize(30);
|
||||
oStylesWriter.m_oWriter.AddIntNoCheck(dW);
|
||||
oStylesWriter.m_oWriter.AddIntNoCheck(dW / 100.);
|
||||
oStylesWriter.m_oWriter.AddCharNoCheck(WCHAR(','));
|
||||
oStylesWriter.m_oWriter.AddIntNoCheck(dH);
|
||||
oStylesWriter.m_oWriter.AddIntNoCheck(dH / 100.);
|
||||
pWriter->WriteAttribute(_T("coordsize"), oStylesWriter.GetXmlString());
|
||||
|
||||
pWriter->EndAttributes();
|
||||
@ -186,15 +183,15 @@ namespace PPTX
|
||||
{
|
||||
if (SpTreeElems[i].is<PPTX::Logic::Shape>())
|
||||
{
|
||||
SpTreeElems[i].as<PPTX::Logic::Shape>().toXmlWriterVML(pWriter, _oTheme, _oClrMap);
|
||||
SpTreeElems[i].as<PPTX::Logic::Shape>().toXmlWriterVML(pWriter, _oTheme, _oClrMap, true);
|
||||
}
|
||||
else if (SpTreeElems[i].is<PPTX::Logic::Pic>())
|
||||
{
|
||||
SpTreeElems[i].as<PPTX::Logic::Pic>().toXmlWriterVML(pWriter, _oTheme, _oClrMap);
|
||||
SpTreeElems[i].as<PPTX::Logic::Pic>().toXmlWriterVML(pWriter, _oTheme, _oClrMap, true);
|
||||
}
|
||||
else if (SpTreeElems[i].is<PPTX::Logic::SpTree>())
|
||||
{
|
||||
SpTreeElems[i].as<PPTX::Logic::SpTree>().toXmlWriterVML(pWriter, _oTheme, _oClrMap);
|
||||
SpTreeElems[i].as<PPTX::Logic::SpTree>().toXmlWriterVML(pWriter, _oTheme, _oClrMap, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -121,7 +121,7 @@ namespace PPTX
|
||||
return XmlUtils::CreateNode(m_name, oValue);
|
||||
}
|
||||
|
||||
void toXmlWriterVML(NSBinPptxRW::CXmlWriter* pWriter, smart_ptr<PPTX::WrapperFile>& oTheme, smart_ptr<PPTX::WrapperWritingElement>& oClrMap);
|
||||
void toXmlWriterVML(NSBinPptxRW::CXmlWriter* pWriter, smart_ptr<PPTX::WrapperFile>& oTheme, smart_ptr<PPTX::WrapperWritingElement>& oClrMap, bool in_group = false);
|
||||
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
|
||||
@ -2288,6 +2288,7 @@
|
||||
DONT_WRITE_EMBEDDED_FONTS,
|
||||
CXIMAGE_DONT_DECLARE_TCHAR,
|
||||
_IOS,
|
||||
DONT_WRITE_EMBEDDED_FONTS,
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
@ -2329,6 +2330,7 @@
|
||||
DONT_WRITE_EMBEDDED_FONTS,
|
||||
CXIMAGE_DONT_DECLARE_TCHAR,
|
||||
_IOS,
|
||||
DONT_WRITE_EMBEDDED_FONTS,
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user