mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-04-07 13:55:33 +08:00
fill stretch
This commit is contained in:
@ -185,20 +185,7 @@ namespace PPTX
|
||||
pWriter->EndAttributes();
|
||||
|
||||
pWriter->Write(blip);
|
||||
|
||||
if (srcRect.is_init())
|
||||
{
|
||||
pWriter->StartNode(L"a:srcRect");
|
||||
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(L"l", srcRect->l);
|
||||
pWriter->WriteAttribute(L"t", srcRect->t);
|
||||
pWriter->WriteAttribute(L"r", srcRect->r);
|
||||
pWriter->WriteAttribute(L"b", srcRect->b);
|
||||
pWriter->EndAttributes();
|
||||
|
||||
pWriter->EndNode(L"a:srcRect");
|
||||
}
|
||||
pWriter->Write(srcRect);
|
||||
|
||||
pWriter->Write(tile);
|
||||
pWriter->Write(stretch);
|
||||
@ -455,31 +442,26 @@ namespace PPTX
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pReader->Seek(_e2);
|
||||
break;
|
||||
}
|
||||
pReader->Seek(_e2);
|
||||
}break;
|
||||
case 1:
|
||||
{
|
||||
srcRect = new PPTX::Logic::Rect();
|
||||
srcRect->fromPPTY(pReader);
|
||||
break;
|
||||
}
|
||||
srcRect->m_name = L"a:srcRect";
|
||||
srcRect->fromPPTY(pReader);
|
||||
}break;
|
||||
case 2:
|
||||
{
|
||||
tile = new PPTX::Logic::Tile();
|
||||
tile->fromPPTY(pReader);
|
||||
break;
|
||||
}
|
||||
tile->fromPPTY(pReader);
|
||||
}break;
|
||||
case 3:
|
||||
{
|
||||
stretch = new PPTX::Logic::Stretch();
|
||||
pReader->SkipRecord();
|
||||
break;
|
||||
}
|
||||
stretch->fromPPTY(pReader);
|
||||
}break;
|
||||
default:
|
||||
{
|
||||
// пока никаких настроек градиента нет
|
||||
pReader->SkipRecord();
|
||||
}
|
||||
}
|
||||
|
||||
@ -98,6 +98,30 @@ namespace PPTX
|
||||
|
||||
pWriter->EndNode(strName);
|
||||
}
|
||||
void Stretch::fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader)
|
||||
{
|
||||
LONG _end_rec = pReader->GetPos() + pReader->GetRecordSize() + 4;
|
||||
|
||||
while (pReader->GetPos() < _end_rec)
|
||||
{
|
||||
BYTE rec = pReader->GetUChar();
|
||||
|
||||
switch (rec)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
fillRect = new PPTX::Logic::Rect();
|
||||
fillRect->m_name = L"a:fillRect";
|
||||
fillRect->fromPPTY(pReader);
|
||||
}break;
|
||||
default:
|
||||
{
|
||||
pReader->SkipRecord();
|
||||
}
|
||||
}
|
||||
}
|
||||
pReader->Seek(_end_rec);
|
||||
}
|
||||
void Stretch::toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
pWriter->WriteRecord2(0, fillRect);
|
||||
|
||||
@ -30,8 +30,6 @@
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
#ifndef PPTX_LOGIC_STRETCH_INCLUDE_H_
|
||||
#define PPTX_LOGIC_STRETCH_INCLUDE_H_
|
||||
|
||||
#include "./../../WrapperWritingElement.h"
|
||||
#include "./../Rect.h"
|
||||
@ -56,8 +54,8 @@ namespace PPTX
|
||||
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const;
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const;
|
||||
virtual void fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader);
|
||||
|
||||
public:
|
||||
nullable<Rect> fillRect;
|
||||
|
||||
protected:
|
||||
@ -65,5 +63,3 @@ namespace PPTX
|
||||
};
|
||||
} // namespace Logic
|
||||
} // namespace PPTX
|
||||
|
||||
#endif // PPTX_LOGIC_STRETCH_INCLUDE_H_
|
||||
|
||||
@ -30,8 +30,6 @@
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
#ifndef PPTX_LOGIC_TILE_INCLUDE_H_
|
||||
#define PPTX_LOGIC_TILE_INCLUDE_H_
|
||||
|
||||
#include "./../../WrapperWritingElement.h"
|
||||
#include "./../../Limit/RectAlign.h"
|
||||
@ -61,7 +59,6 @@ namespace PPTX
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const;
|
||||
virtual void fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader);
|
||||
|
||||
public:
|
||||
nullable_limit<Limit::RectAlign> algn;
|
||||
nullable_limit<Limit::Flip> flip;
|
||||
nullable_int sx;
|
||||
@ -75,4 +72,3 @@ namespace PPTX
|
||||
} // namespace Logic
|
||||
} // namespace PPTX
|
||||
|
||||
#endif // PPTX_LOGIC_TILE_INCLUDE_H_
|
||||
|
||||
@ -256,16 +256,14 @@ namespace PPTX
|
||||
case 1:
|
||||
{
|
||||
// id. embed / link
|
||||
pReader->Skip(4);
|
||||
break;
|
||||
}
|
||||
pReader->Skip(4);
|
||||
}break;
|
||||
case 10:
|
||||
case 11:
|
||||
{
|
||||
// id. embed / link
|
||||
pReader->GetString2();
|
||||
break;
|
||||
}
|
||||
pReader->GetString2();
|
||||
}break;
|
||||
case 2:
|
||||
{
|
||||
if (!pFill->blip.is_init())
|
||||
@ -415,41 +413,35 @@ namespace PPTX
|
||||
pFill->blip->mediaRid = OOX::RId((size_t)oRelsGeneratorInfo.nMediaRId).get();
|
||||
pFill->blip->mediaFilepath = oRelsGeneratorInfo.sFilepathMedia;
|
||||
}
|
||||
pReader->Skip(1); // end attribute
|
||||
break;
|
||||
}
|
||||
pReader->Skip(1); // end attribute
|
||||
}break;
|
||||
default:
|
||||
{
|
||||
pReader->SkipRecord();
|
||||
break;
|
||||
}
|
||||
pReader->SkipRecord();
|
||||
}break;
|
||||
}
|
||||
}
|
||||
|
||||
pReader->Seek(_e2);
|
||||
break;
|
||||
}
|
||||
pReader->Seek(_e2);
|
||||
}break;
|
||||
case 1:
|
||||
{
|
||||
pFill->srcRect = new PPTX::Logic::Rect();
|
||||
pFill->srcRect->m_name = L"a:srcRect";
|
||||
pFill->srcRect->fromPPTY(pReader);
|
||||
break;
|
||||
}
|
||||
}break;
|
||||
case 2:
|
||||
{
|
||||
pFill->tile = new PPTX::Logic::Tile();
|
||||
pFill->tile->fromPPTY(pReader);
|
||||
break;
|
||||
}
|
||||
pFill->tile->fromPPTY(pReader);
|
||||
}break;
|
||||
case 3:
|
||||
{
|
||||
pFill->stretch = new PPTX::Logic::Stretch();
|
||||
pReader->SkipRecord();
|
||||
break;
|
||||
}
|
||||
pFill->stretch->fromPPTY(pReader);
|
||||
}break;
|
||||
default:
|
||||
{
|
||||
// пока никаких настроек градиента нет
|
||||
pReader->SkipRecord();
|
||||
}
|
||||
}
|
||||
@ -517,33 +509,27 @@ namespace PPTX
|
||||
pFill->GsLst[_countGs].color.fromPPTY(pReader);
|
||||
}
|
||||
|
||||
pReader->Seek(_e1);
|
||||
break;
|
||||
}
|
||||
pReader->Seek(_e1);
|
||||
}break;
|
||||
case 1:
|
||||
{
|
||||
pFill->lin = new PPTX::Logic::Lin();
|
||||
pFill->lin->fromPPTY(pReader);
|
||||
break;
|
||||
}
|
||||
pFill->lin->fromPPTY(pReader);
|
||||
}break;
|
||||
case 2:
|
||||
{
|
||||
pFill->path = new PPTX::Logic::Path();
|
||||
pFill->path->fromPPTY(pReader);
|
||||
break;
|
||||
}
|
||||
pFill->path->fromPPTY(pReader);
|
||||
}break;
|
||||
case 3:
|
||||
{
|
||||
pFill->tileRect = new PPTX::Logic::Rect();
|
||||
pFill->tileRect->fromPPTY(pReader);
|
||||
pFill->tileRect->m_name = _T("a:tileRect");
|
||||
break;
|
||||
}
|
||||
pFill->tileRect->m_name = L"a:tileRect";
|
||||
pFill->tileRect->fromPPTY(pReader);
|
||||
}break;
|
||||
default:
|
||||
{
|
||||
// пока никаких настроек градиента нет
|
||||
pReader->SkipRecord();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user