3 Star 9 Fork 7

Gitee 极速下载/WinMerge

Create your Gitee Account
Explore and code with more than 13.5 million developers,Free private repositories !:)
Sign up
文件
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/winmerge/winmerge
Clone or Download
OptionsSyntaxColors.cpp 2.97 KB
Copy Edit Raw Blame History
Takashi Sawanaka authored 2 years ago . Add CEColor class
/**
* @file OptionsSyntaxColors.cpp
*
* @brief Implementation for OptionsSyntaxColors class.
*/
#include "pch.h"
#include "OptionsSyntaxColors.h"
#include <vector>
#include "SyntaxColors.h"
#include "UnicodeString.h"
#include "OptionsDef.h"
#include "OptionsMgr.h"
using std::vector;
/** @brief Setting name for default colors. */
static const tchar_t DefColorsPath[] =_T("DefaultSyntaxColors");
namespace Options { namespace SyntaxColors {
void Init(COptionsMgr *pOptionsMgr, ::SyntaxColors *pSyntaxColors)
{
String valuename(DefColorsPath);
int count = COLORINDEX_COUNT;
valuename += _T("/Values");
pOptionsMgr->InitOption(valuename, count);
for (unsigned i = COLORINDEX_NONE; i < COLORINDEX_LAST; i++)
{
// Since we want to initialize with default colors (already
// set to array, we must first call OptionsMrg->InitOption()
// with default value. And since InitOption() reads stored value
// from storage we must set that valu1Ge to array we use.
int color = 0;
CEColor ref;
color = pSyntaxColors->GetColor(i);
// Special handling for themable colors
// These are text colors which by default follow the current system colors
// unless the user has overridden this behavior to specify them explicitly
bool serializable = true;
if (pSyntaxColors->IsThemeableColorIndex(i))
{
if (pOptionsMgr->GetBool(OPT_CLR_DEFAULT_TEXT_COLORING))
serializable = false;
}
valuename = strutils::format(_T("%s/Color%02u"), DefColorsPath, i);
pOptionsMgr->InitOption(valuename, color, serializable);
color = pOptionsMgr->GetInt(valuename);
ref = color;
pSyntaxColors->SetColor(i, ref);
valuename = strutils::format(_T("%s/Bold%02u"), DefColorsPath, i);
pOptionsMgr->InitOption(valuename, pSyntaxColors->GetBold(i));
pSyntaxColors->SetBold(i, pOptionsMgr->GetBool(valuename));
}
}
/**
* @brief Load color values from storage
* @param [out] pSyntaxColors pointer to SyntaxColors
*/
void Load(COptionsMgr *pOptionsMgr, ::SyntaxColors *pSyntaxColors)
{
for (unsigned i = COLORINDEX_NONE; i < COLORINDEX_LAST; i++)
{
String valuename = strutils::format(_T("%s/Color%02u"), DefColorsPath, i);
int color = pOptionsMgr->GetInt(valuename);
CEColor ref = color;
pSyntaxColors->SetColor(i, ref);
valuename = strutils::format(_T("%s/Bold%02u"), DefColorsPath, i);
pSyntaxColors->SetBold(i, pOptionsMgr->GetBool(valuename));
}
}
/**
* @brief Save color values to storage
* @param [in] pSyntaxColors pointer to SyntaxColors
*/
void Save(COptionsMgr *pOptionsMgr, const ::SyntaxColors *pSyntaxColors)
{
String valuename(DefColorsPath);
int count = COLORINDEX_COUNT;
valuename += _T("/Values");
pOptionsMgr->SaveOption(valuename, count);
for (unsigned i = COLORINDEX_NONE; i < COLORINDEX_LAST; i++)
{
int color = pSyntaxColors->GetColor(i);
pOptionsMgr->SaveOption(strutils::format(_T("%s/Color%02u"), DefColorsPath, i), color);
bool bold = pSyntaxColors->GetBold(i);
pOptionsMgr->SaveOption(strutils::format(_T("%s/Bold%02u"), DefColorsPath, i), bold);
}
}
}}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/mirrors/WinMerge.git
git@gitee.com:mirrors/WinMerge.git
mirrors
WinMerge
WinMerge
master

Search