mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-04-07 13:55:33 +08:00
85 lines
1.8 KiB
C++
85 lines
1.8 KiB
C++
//#include "./stdafx.h"
|
|
|
|
#include "Bg.h"
|
|
#include "../Slide.h"
|
|
#include "../SlideMaster.h"
|
|
#include "../SlideLayout.h"
|
|
|
|
namespace PPTX
|
|
{
|
|
namespace Logic
|
|
{
|
|
|
|
Bg::Bg()
|
|
{
|
|
}
|
|
|
|
|
|
Bg::~Bg()
|
|
{
|
|
}
|
|
|
|
|
|
Bg::Bg(XmlUtils::CXmlNode& node)
|
|
{
|
|
fromXML(node);
|
|
}
|
|
|
|
|
|
const Bg& Bg::operator =(XmlUtils::CXmlNode& node)
|
|
{
|
|
fromXML(node);
|
|
return *this;
|
|
}
|
|
|
|
|
|
void Bg::fromXML(XmlUtils::CXmlNode& node)
|
|
{
|
|
node.ReadAttributeBase(L"bwMode", bwMode);
|
|
bgPr = node.ReadNodeNoNS(_T("bgPr"));
|
|
bgRef = node.ReadNodeNoNS(_T("bgRef"));
|
|
|
|
FillParentPointersForChilds();
|
|
}
|
|
|
|
|
|
CString Bg::toXML() const
|
|
{
|
|
XmlUtils::CAttribute oAttr;
|
|
oAttr.WriteLimitNullable(_T("bwMode"), bwMode);
|
|
|
|
XmlUtils::CNodeValue oValue;
|
|
oValue.WriteNullable(bgPr);
|
|
oValue.WriteNullable(bgRef);
|
|
|
|
return XmlUtils::CreateNode(_T("p:bg"), oAttr, oValue);
|
|
}
|
|
|
|
void Bg::FillParentPointersForChilds()
|
|
{
|
|
//if(background != 0)
|
|
// background->SetParentPointer(this);
|
|
if(bgPr.IsInit())
|
|
bgPr->SetParentPointer(this);
|
|
if(bgRef.IsInit())
|
|
bgRef->SetParentPointer(this);
|
|
}
|
|
|
|
void Bg::GetBackground(Logic::BgPr& bg, DWORD& ARGB)const
|
|
{
|
|
if(bgPr.IsInit())
|
|
bg = bgPr.get();
|
|
else// if(cSld->bg->bgRef.is_init())
|
|
{
|
|
ARGB = bgRef->Color.GetARGB();
|
|
if(parentFileIs<Slide>())
|
|
parentFileAs<Slide>().theme->themeElements.fmtScheme.GetFillStyle(bgRef->idx.get_value_or(0), bg.Fill);
|
|
else if(parentFileIs<SlideLayout>())
|
|
parentFileAs<SlideLayout>().theme->themeElements.fmtScheme.GetFillStyle(bgRef->idx.get_value_or(0), bg.Fill);
|
|
else if(parentFileIs<SlideMaster>())
|
|
parentFileAs<SlideMaster>().theme->themeElements.fmtScheme.GetFillStyle(bgRef->idx.get_value_or(0), bg.Fill);
|
|
}
|
|
}
|
|
|
|
} // namespace Logic
|
|
} // namespace PPTX
|