mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-07-11 05:24:10 +08:00
Co-authored-by: Alexander Trofimov <alexander.trofimov@onlyoffice.com> Co-committed-by: Alexander Trofimov <alexander.trofimov@onlyoffice.com>
342 lines
11 KiB
C++
342 lines
11 KiB
C++
/*
|
||
* Copyright (C) Ascensio System SIA, 2009-2026
|
||
*
|
||
* This program is a free software product. You can redistribute it and/or
|
||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||
* version 3 as published by the Free Software Foundation, together with the
|
||
* additional terms provided in the LICENSE file.
|
||
*
|
||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||
* details, see the GNU AGPL at: https://www.gnu.org/licenses/agpl-3.0.html
|
||
*
|
||
* You can contact Ascensio System SIA by email at info@onlyoffice.com
|
||
* or by postal mail at 20A-6 Ernesta Birznieka-Upisha Street, Riga,
|
||
* LV-1050, Latvia, European Union.
|
||
*
|
||
* The interactive user interfaces in modified versions of the Program
|
||
* are required to display Appropriate Legal Notices in accordance with
|
||
* Section 5 of the GNU AGPL version 3.
|
||
*
|
||
* No trademark rights are granted under this License.
|
||
*
|
||
* All non-code elements of the Product, including illustrations,
|
||
* icon sets, and technical writing content, are licensed under the
|
||
* Creative Commons Attribution-ShareAlike 4.0 International License:
|
||
* https://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||
*
|
||
* This license applies only to such non-code elements and does not
|
||
* modify or replace the licensing terms applicable to the Program's
|
||
* source code, which remains licensed under the GNU Affero General
|
||
* Public License v3.
|
||
*
|
||
* SPDX-License-Identifier: AGPL-3.0-only
|
||
*/
|
||
|
||
#include "DefaultThemeWriter.h"
|
||
|
||
namespace Writers
|
||
{
|
||
DefaultThemeWriter::DefaultThemeWriter( )
|
||
{
|
||
}
|
||
|
||
void DefaultThemeWriter::Write(std::wstring sThemeFilePath)
|
||
{
|
||
if (m_sContent.empty())
|
||
{
|
||
m_sContent = L"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>";
|
||
m_sContent += L"<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\">\
|
||
<a:themeElements> \
|
||
<a:clrScheme name=\"Office\"> \
|
||
<a:dk1> \
|
||
<a:sysClr val=\"windowText\" lastClr=\"000000\"/> \
|
||
</a:dk1> \
|
||
<a:lt1> \
|
||
<a:sysClr val=\"window\" lastClr=\"FFFFFF\"/> \
|
||
</a:lt1> \
|
||
<a:dk2> \
|
||
<a:srgbClr val=\"1F497D\"/> \
|
||
</a:dk2> \
|
||
<a:lt2> \
|
||
<a:srgbClr val=\"EEECE1\"/> \
|
||
</a:lt2> \
|
||
<a:accent1> \
|
||
<a:srgbClr val=\"4F81BD\"/> \
|
||
</a:accent1> \
|
||
<a:accent2> \
|
||
<a:srgbClr val=\"C0504D\"/> \
|
||
</a:accent2> \
|
||
<a:accent3> \
|
||
<a:srgbClr val=\"9BBB59\"/> \
|
||
</a:accent3> \
|
||
<a:accent4> \
|
||
<a:srgbClr val=\"8064A2\"/> \
|
||
</a:accent4> \
|
||
<a:accent5> \
|
||
<a:srgbClr val=\"4BACC6\"/> \
|
||
</a:accent5> \
|
||
<a:accent6> \
|
||
<a:srgbClr val=\"F79646\"/> \
|
||
</a:accent6> \
|
||
<a:hlink> \
|
||
<a:srgbClr val=\"0000FF\"/> \
|
||
</a:hlink> \
|
||
<a:folHlink> \
|
||
<a:srgbClr val=\"800080\"/> \
|
||
</a:folHlink> \
|
||
</a:clrScheme> ";
|
||
m_sContent +=
|
||
L"<a:fontScheme name=\"Office\"> \
|
||
<a:majorFont> \
|
||
<a:latin typeface=\"Cambria\"/> \
|
||
<a:ea typeface=\"\"/> \
|
||
<a:cs typeface=\"\"/> \
|
||
<a:font script=\"Jpan\" typeface=\"MS ゴシック\"/> \
|
||
<a:font script=\"Hang\" typeface=\"맑은 고딕\"/> \
|
||
<a:font script=\"Hans\" typeface=\"宋体\"/> \
|
||
<a:font script=\"Hant\" typeface=\"新細明體\"/> \
|
||
<a:font script=\"Arab\" typeface=\"Times New Roman\"/> \
|
||
<a:font script=\"Hebr\" typeface=\"Times New Roman\"/> \
|
||
<a:font script=\"Thai\" typeface=\"Angsana New\"/> \
|
||
<a:font script=\"Ethi\" typeface=\"Nyala\"/> \
|
||
<a:font script=\"Beng\" typeface=\"Vrinda\"/> \
|
||
<a:font script=\"Gujr\" typeface=\"Shruti\"/> \
|
||
<a:font script=\"Khmr\" typeface=\"MoolBoran\"/> \
|
||
<a:font script=\"Knda\" typeface=\"Tunga\"/> \
|
||
<a:font script=\"Guru\" typeface=\"Raavi\"/> \
|
||
<a:font script=\"Cans\" typeface=\"Euphemia\"/> \
|
||
<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/> \
|
||
<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/> \
|
||
<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/> \
|
||
<a:font script=\"Thaa\" typeface=\"MV Boli\"/> \
|
||
<a:font script=\"Deva\" typeface=\"Mangal\"/> \
|
||
<a:font script=\"Telu\" typeface=\"Gautami\"/> \
|
||
<a:font script=\"Taml\" typeface=\"Latha\"/> \
|
||
<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/> \
|
||
<a:font script=\"Orya\" typeface=\"Kalinga\"/> \
|
||
<a:font script=\"Mlym\" typeface=\"Kartika\"/> \
|
||
<a:font script=\"Laoo\" typeface=\"DokChampa\"/> \
|
||
<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/> \
|
||
<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/> \
|
||
<a:font script=\"Viet\" typeface=\"Times New Roman\"/> \
|
||
<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/> \
|
||
</a:majorFont> \
|
||
<a:minorFont> \
|
||
<a:latin typeface=\"Calibri\"/> \
|
||
<a:ea typeface=\"\"/> \
|
||
<a:cs typeface=\"\"/> \
|
||
<a:font script=\"Jpan\" typeface=\"MS 明朝\"/> \
|
||
<a:font script=\"Hang\" typeface=\"맑은 고딕\"/> \
|
||
<a:font script=\"Hans\" typeface=\"宋体\"/> \
|
||
<a:font script=\"Hant\" typeface=\"新細明體\"/> \
|
||
<a:font script=\"Arab\" typeface=\"Arial\"/> \
|
||
<a:font script=\"Hebr\" typeface=\"Arial\"/> \
|
||
<a:font script=\"Thai\" typeface=\"Cordia New\"/> \
|
||
<a:font script=\"Ethi\" typeface=\"Nyala\"/> \
|
||
<a:font script=\"Beng\" typeface=\"Vrinda\"/> \
|
||
<a:font script=\"Gujr\" typeface=\"Shruti\"/> \
|
||
<a:font script=\"Khmr\" typeface=\"DaunPenh\"/> \
|
||
<a:font script=\"Knda\" typeface=\"Tunga\"/> \
|
||
<a:font script=\"Guru\" typeface=\"Raavi\"/> \
|
||
<a:font script=\"Cans\" typeface=\"Euphemia\"/> \
|
||
<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/> \
|
||
<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/> \
|
||
<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/> \
|
||
<a:font script=\"Thaa\" typeface=\"MV Boli\"/> \
|
||
<a:font script=\"Deva\" typeface=\"Mangal\"/> \
|
||
<a:font script=\"Telu\" typeface=\"Gautami\"/> \
|
||
<a:font script=\"Taml\" typeface=\"Latha\"/> \
|
||
<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/> \
|
||
<a:font script=\"Orya\" typeface=\"Kalinga\"/> \
|
||
<a:font script=\"Mlym\" typeface=\"Kartika\"/> \
|
||
<a:font script=\"Laoo\" typeface=\"DokChampa\"/> \
|
||
<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/> \
|
||
<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/> \
|
||
<a:font script=\"Viet\" typeface=\"Arial\"/> \
|
||
<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/> \
|
||
</a:minorFont> \
|
||
</a:fontScheme>";
|
||
m_sContent +=
|
||
L"<a:fmtScheme name=\"Office\"> \
|
||
<a:fillStyleLst> \
|
||
<a:solidFill> \
|
||
<a:schemeClr val=\"phClr\"/> \
|
||
</a:solidFill> \
|
||
<a:gradFill rotWithShape=\"1\"> \
|
||
<a:gsLst> \
|
||
<a:gs pos=\"0\"> \
|
||
<a:schemeClr val=\"phClr\"> \
|
||
<a:tint val=\"50000\"/> \
|
||
<a:satMod val=\"300000\"/> \
|
||
</a:schemeClr> \
|
||
</a:gs> \
|
||
<a:gs pos=\"35000\"> \
|
||
<a:schemeClr val=\"phClr\"> \
|
||
<a:tint val=\"37000\"/> \
|
||
<a:satMod val=\"300000\"/> \
|
||
</a:schemeClr> \
|
||
</a:gs> \
|
||
<a:gs pos=\"100000\"> \
|
||
<a:schemeClr val=\"phClr\"> \
|
||
<a:tint val=\"15000\"/> \
|
||
<a:satMod val=\"350000\"/> \
|
||
</a:schemeClr> \
|
||
</a:gs> \
|
||
</a:gsLst> \
|
||
<a:lin ang=\"16200000\" scaled=\"1\"/> \
|
||
</a:gradFill> \
|
||
<a:gradFill rotWithShape=\"1\"> \
|
||
<a:gsLst> \
|
||
<a:gs pos=\"0\"> \
|
||
<a:schemeClr val=\"phClr\"> \
|
||
<a:shade val=\"51000\"/> \
|
||
<a:satMod val=\"130000\"/> \
|
||
</a:schemeClr> \
|
||
</a:gs> \
|
||
<a:gs pos=\"80000\"> \
|
||
<a:schemeClr val=\"phClr\"> \
|
||
<a:shade val=\"93000\"/> \
|
||
<a:satMod val=\"130000\"/> \
|
||
</a:schemeClr> \
|
||
</a:gs> \
|
||
<a:gs pos=\"100000\"> \
|
||
<a:schemeClr val=\"phClr\"> \
|
||
<a:shade val=\"94000\"/> \
|
||
<a:satMod val=\"135000\"/> \
|
||
</a:schemeClr> \
|
||
</a:gs> \
|
||
</a:gsLst> \
|
||
<a:lin ang=\"16200000\" scaled=\"0\"/> \
|
||
</a:gradFill> \
|
||
</a:fillStyleLst> \
|
||
<a:lnStyleLst> \
|
||
<a:ln w=\"9525\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"> \
|
||
<a:solidFill> \
|
||
<a:schemeClr val=\"phClr\"> \
|
||
<a:shade val=\"95000\"/> \
|
||
<a:satMod val=\"105000\"/> \
|
||
</a:schemeClr> \
|
||
</a:solidFill> \
|
||
<a:prstDash val=\"solid\"/> \
|
||
</a:ln> \
|
||
<a:ln w=\"25400\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"> \
|
||
<a:solidFill> \
|
||
<a:schemeClr val=\"phClr\"/> \
|
||
</a:solidFill> \
|
||
<a:prstDash val=\"solid\"/> \
|
||
</a:ln> \
|
||
<a:ln w=\"38100\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"> \
|
||
<a:solidFill> \
|
||
<a:schemeClr val=\"phClr\"/> \
|
||
</a:solidFill> \
|
||
<a:prstDash val=\"solid\"/> \
|
||
</a:ln> \
|
||
</a:lnStyleLst> \
|
||
<a:effectStyleLst> \
|
||
<a:effectStyle> \
|
||
<a:effectLst> \
|
||
<a:outerShdw blurRad=\"40000\" dist=\"20000\" dir=\"5400000\" rotWithShape=\"0\"> \
|
||
<a:srgbClr val=\"000000\"> \
|
||
<a:alpha val=\"38000\"/> \
|
||
</a:srgbClr> \
|
||
</a:outerShdw> \
|
||
</a:effectLst> \
|
||
</a:effectStyle> \
|
||
<a:effectStyle> \
|
||
<a:effectLst> \
|
||
<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"> \
|
||
<a:srgbClr val=\"000000\"> \
|
||
<a:alpha val=\"35000\"/> \
|
||
</a:srgbClr> \
|
||
</a:outerShdw> \
|
||
</a:effectLst> \
|
||
</a:effectStyle> \
|
||
<a:effectStyle> \
|
||
<a:effectLst> \
|
||
<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"> \
|
||
<a:srgbClr val=\"000000\"> \
|
||
<a:alpha val=\"35000\"/> \
|
||
</a:srgbClr> \
|
||
</a:outerShdw> \
|
||
</a:effectLst> \
|
||
<a:scene3d> \
|
||
<a:camera prst=\"orthographicFront\"> \
|
||
<a:rot lat=\"0\" lon=\"0\" rev=\"0\"/> \
|
||
</a:camera > \
|
||
<a:lightRig rig=\"threePt\" dir=\"t\"> \
|
||
<a:rot lat=\"0\" lon=\"0\" rev=\"1200000\"/> \
|
||
</a:lightRig> \
|
||
</a:scene3d> \
|
||
<a:sp3d> \
|
||
<a:bevelT w=\"63500\" h=\"25400\"/> \
|
||
</a:sp3d> \
|
||
</a:effectStyle> \
|
||
</a:effectStyleLst> \
|
||
<a:bgFillStyleLst> \
|
||
<a:solidFill> \
|
||
<a:schemeClr val=\"phClr\"/> \
|
||
</a:solidFill> \
|
||
<a:gradFill rotWithShape=\"1\"> \
|
||
<a:gsLst> \
|
||
<a:gs pos=\"0\"> \
|
||
<a:schemeClr val=\"phClr\"> \
|
||
<a:tint val=\"40000\"/> \
|
||
<a:satMod val=\"350000\"/> \
|
||
</a:schemeClr> \
|
||
</a:gs> \
|
||
<a:gs pos=\"40000\"> \
|
||
<a:schemeClr val=\"phClr\"> \
|
||
<a:tint val=\"45000\"/> \
|
||
<a:shade val=\"99000\"/> \
|
||
<a:satMod val=\"350000\"/> \
|
||
</a:schemeClr> \
|
||
</a:gs> \
|
||
<a:gs pos=\"100000\"> \
|
||
<a:schemeClr val=\"phClr\"> \
|
||
<a:shade val=\"20000\"/> \
|
||
<a:satMod val=\"255000\"/> \
|
||
</a:schemeClr> \
|
||
</a:gs> \
|
||
</a:gsLst> \
|
||
<a:path path=\"circle\"> \
|
||
<a:fillToRect l=\"50000\" t=\"-80000\" r=\"50000\" b=\"180000\"/> \
|
||
</a:path> \
|
||
</a:gradFill> \
|
||
<a:gradFill rotWithShape=\"1\"> \
|
||
<a:gsLst> \
|
||
<a:gs pos=\"0\"> \
|
||
<a:schemeClr val=\"phClr\"> \
|
||
<a:tint val=\"80000\"/> \
|
||
<a:satMod val=\"300000\"/> \
|
||
</a:schemeClr> \
|
||
</a:gs> \
|
||
<a:gs pos=\"100000\"> \
|
||
<a:schemeClr val=\"phClr\"> \
|
||
<a:shade val=\"30000\"/> \
|
||
<a:satMod val=\"200000\"/> \
|
||
</a:schemeClr> \
|
||
</a:gs> \
|
||
</a:gsLst> \
|
||
<a:path path=\"circle\"> \
|
||
<a:fillToRect l=\"50000\" t=\"50000\" r=\"50000\" b=\"50000\"/> \
|
||
</a:path> \
|
||
</a:gradFill> \
|
||
</a:bgFillStyleLst> \
|
||
</a:fmtScheme> \
|
||
</a:themeElements> \
|
||
<a:objectDefaults/> \
|
||
<a:extraClrSchemeLst/> \
|
||
</a:theme>";
|
||
}
|
||
|
||
OOX::CPath fileName = sThemeFilePath;
|
||
|
||
NSFile::CFileBinary oFile;
|
||
oFile.CreateFileW(fileName.GetPath());
|
||
oFile.WriteStringUTF8(m_sContent);
|
||
oFile.CloseFile();
|
||
}
|
||
}
|
||
|