增加Data::Exists方法,判断数据是否存在
This commit is contained in:
parent
a67eefc0b4
commit
997aca7e6e
|
|
@ -106,7 +106,7 @@ void e2d::Renderer::EndDraw()
|
||||||
|
|
||||||
ThrowIfFailed(
|
ThrowIfFailed(
|
||||||
GetWriteFactory()->CreateTextLayout(
|
GetWriteFactory()->CreateTextLayout(
|
||||||
(const WCHAR *)fpsText,
|
(const wchar_t *)fpsText,
|
||||||
(UINT32)fpsText.GetLength(),
|
(UINT32)fpsText.GetLength(),
|
||||||
fps_text_format_,
|
fps_text_format_,
|
||||||
0,
|
0,
|
||||||
|
|
|
||||||
|
|
@ -323,7 +323,7 @@ void e2d::Text::CreateFormat()
|
||||||
|
|
||||||
ThrowIfFailed(
|
ThrowIfFailed(
|
||||||
Renderer::GetWriteFactory()->CreateTextFormat(
|
Renderer::GetWriteFactory()->CreateTextFormat(
|
||||||
(const WCHAR *)font_.family,
|
(const wchar_t *)font_.family,
|
||||||
nullptr,
|
nullptr,
|
||||||
DWRITE_FONT_WEIGHT(font_.weight),
|
DWRITE_FONT_WEIGHT(font_.weight),
|
||||||
font_.italic ? DWRITE_FONT_STYLE_ITALIC : DWRITE_FONT_STYLE_NORMAL,
|
font_.italic ? DWRITE_FONT_STYLE_ITALIC : DWRITE_FONT_STYLE_NORMAL,
|
||||||
|
|
@ -387,7 +387,7 @@ void e2d::Text::CreateLayout()
|
||||||
{
|
{
|
||||||
ThrowIfFailed(
|
ThrowIfFailed(
|
||||||
writeFactory->CreateTextLayout(
|
writeFactory->CreateTextLayout(
|
||||||
(const WCHAR *)text_,
|
(const wchar_t *)text_,
|
||||||
length,
|
length,
|
||||||
text_format_,
|
text_format_,
|
||||||
style_.wrap_width,
|
style_.wrap_width,
|
||||||
|
|
@ -406,7 +406,7 @@ void e2d::Text::CreateLayout()
|
||||||
// 为防止文本对齐问题,根据先创建 layout 以获取宽度
|
// 为防止文本对齐问题,根据先创建 layout 以获取宽度
|
||||||
ThrowIfFailed(
|
ThrowIfFailed(
|
||||||
writeFactory->CreateTextLayout(
|
writeFactory->CreateTextLayout(
|
||||||
(const WCHAR *)text_,
|
(const wchar_t *)text_,
|
||||||
length,
|
length,
|
||||||
text_format_,
|
text_format_,
|
||||||
0,
|
0,
|
||||||
|
|
@ -425,7 +425,7 @@ void e2d::Text::CreateLayout()
|
||||||
SafeRelease(text_layout_);
|
SafeRelease(text_layout_);
|
||||||
ThrowIfFailed(
|
ThrowIfFailed(
|
||||||
writeFactory->CreateTextLayout(
|
writeFactory->CreateTextLayout(
|
||||||
(const WCHAR *)text_,
|
(const wchar_t *)text_,
|
||||||
length,
|
length,
|
||||||
text_format_,
|
text_format_,
|
||||||
size_.width,
|
size_.width,
|
||||||
|
|
|
||||||
|
|
@ -8,80 +8,116 @@ e2d::Data::Data(const String & key, const String & field)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::Data::SaveInt(int value)
|
bool e2d::Data::Exists() const
|
||||||
{
|
{
|
||||||
::WritePrivateProfileString(
|
wchar_t temp[256] = { 0 };
|
||||||
|
::GetPrivateProfileStringW(
|
||||||
|
(LPCWSTR)field_,
|
||||||
|
(LPCWSTR)key_,
|
||||||
|
L"",
|
||||||
|
temp,
|
||||||
|
255,
|
||||||
|
(LPCWSTR)data_path_
|
||||||
|
);
|
||||||
|
return temp[0] == L'\0';
|
||||||
|
}
|
||||||
|
|
||||||
|
bool e2d::Data::SaveInt(int value)
|
||||||
|
{
|
||||||
|
BOOL ret = ::WritePrivateProfileStringW(
|
||||||
(LPCWSTR)field_,
|
(LPCWSTR)field_,
|
||||||
(LPCWSTR)key_,
|
(LPCWSTR)key_,
|
||||||
(LPCWSTR)String::Parse(value),
|
(LPCWSTR)String::Parse(value),
|
||||||
(LPCWSTR)data_path_
|
(LPCWSTR)data_path_
|
||||||
);
|
);
|
||||||
|
return ret != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::Data::SaveDouble(float value)
|
bool e2d::Data::SaveFloat(float value)
|
||||||
{
|
{
|
||||||
::WritePrivateProfileString(
|
BOOL ret = ::WritePrivateProfileStringW(
|
||||||
(LPCWSTR)field_,
|
(LPCWSTR)field_,
|
||||||
(LPCWSTR)key_,
|
(LPCWSTR)key_,
|
||||||
(LPCWSTR)String::Parse(value),
|
(LPCWSTR)String::Parse(value),
|
||||||
(LPCWSTR)data_path_
|
(LPCWSTR)data_path_
|
||||||
);
|
);
|
||||||
|
return ret != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::Data::SaveBool(bool value)
|
bool e2d::Data::SaveDouble(double value)
|
||||||
{
|
{
|
||||||
::WritePrivateProfileString(
|
BOOL ret = ::WritePrivateProfileStringW(
|
||||||
|
(LPCWSTR)field_,
|
||||||
|
(LPCWSTR)key_,
|
||||||
|
(LPCWSTR)String::Parse(value),
|
||||||
|
(LPCWSTR)data_path_
|
||||||
|
);
|
||||||
|
return ret != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool e2d::Data::SaveBool(bool value)
|
||||||
|
{
|
||||||
|
BOOL ret = ::WritePrivateProfileStringW(
|
||||||
(LPCWSTR)field_,
|
(LPCWSTR)field_,
|
||||||
(LPCWSTR)key_,
|
(LPCWSTR)key_,
|
||||||
(value ? L"1" : L"0"),
|
(value ? L"1" : L"0"),
|
||||||
(LPCWSTR)data_path_
|
(LPCWSTR)data_path_
|
||||||
);
|
);
|
||||||
|
return ret != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::Data::SaveString(const String& value)
|
bool e2d::Data::SaveString(const String& value)
|
||||||
{
|
{
|
||||||
::WritePrivateProfileString(
|
BOOL ret = ::WritePrivateProfileStringW(
|
||||||
(LPCWSTR)field_,
|
(LPCWSTR)field_,
|
||||||
(LPCWSTR)key_,
|
(LPCWSTR)key_,
|
||||||
(LPCWSTR)value,
|
(LPCWSTR)value,
|
||||||
(LPCWSTR)data_path_
|
(LPCWSTR)data_path_
|
||||||
);
|
);
|
||||||
|
return ret != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int e2d::Data::GetInt(int default_value)
|
int e2d::Data::GetInt() const
|
||||||
{
|
{
|
||||||
return ::GetPrivateProfileInt(
|
return ::GetPrivateProfileIntW(
|
||||||
(LPCWSTR)field_,
|
(LPCWSTR)field_,
|
||||||
(LPCWSTR)key_,
|
(LPCWSTR)key_,
|
||||||
default_value,
|
0,
|
||||||
(LPCWSTR)data_path_
|
(LPCWSTR)data_path_
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
float e2d::Data::GetDouble(float default_value)
|
float e2d::Data::GetFloat() const
|
||||||
{
|
{
|
||||||
wchar_t temp[32] = { 0 };
|
wchar_t temp[32] = { 0 };
|
||||||
::GetPrivateProfileString((LPCWSTR)field_, (LPCWSTR)key_, (LPCWSTR)String::Parse(default_value), temp, 31, (LPCWSTR)data_path_);
|
::GetPrivateProfileStringW((LPCWSTR)field_, (LPCWSTR)key_, L"0.0", temp, 31, (LPCWSTR)data_path_);
|
||||||
return std::stof(temp);
|
return std::stof(temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool e2d::Data::GetBool(bool default_value)
|
double e2d::Data::GetDouble() const
|
||||||
{
|
{
|
||||||
int nValue = ::GetPrivateProfileInt(
|
wchar_t temp[32] = { 0 };
|
||||||
|
::GetPrivateProfileStringW((LPCWSTR)field_, (LPCWSTR)key_, L"0.0", temp, 31, (LPCWSTR)data_path_);
|
||||||
|
return std::stod(temp);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool e2d::Data::GetBool() const
|
||||||
|
{
|
||||||
|
int nValue = ::GetPrivateProfileIntW(
|
||||||
(LPCWSTR)field_,
|
(LPCWSTR)field_,
|
||||||
(LPCWSTR)key_,
|
(LPCWSTR)key_,
|
||||||
default_value ? 1 : 0,
|
0,
|
||||||
(LPCWSTR)data_path_);
|
(LPCWSTR)data_path_);
|
||||||
return nValue != 0;
|
return nValue != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::String e2d::Data::GetString(const String& default_value)
|
e2d::String e2d::Data::GetString()
|
||||||
{
|
{
|
||||||
wchar_t temp[256] = { 0 };
|
wchar_t temp[256] = { 0 };
|
||||||
::GetPrivateProfileString(
|
::GetPrivateProfileStringW(
|
||||||
(LPCWSTR)field_,
|
(LPCWSTR)field_,
|
||||||
(LPCWSTR)key_,
|
(LPCWSTR)key_,
|
||||||
(LPCWSTR)default_value,
|
L"",
|
||||||
temp,
|
temp,
|
||||||
255,
|
255,
|
||||||
(LPCWSTR)data_path_
|
(LPCWSTR)data_path_
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ const e2d::String& e2d::Path::GetLocalAppDataPath()
|
||||||
if (local_app_data_path.IsEmpty())
|
if (local_app_data_path.IsEmpty())
|
||||||
{
|
{
|
||||||
// 获取 AppData/Local 文件夹的路径
|
// 获取 AppData/Local 文件夹的路径
|
||||||
WCHAR path[MAX_PATH] = { 0 };
|
wchar_t path[MAX_PATH] = { 0 };
|
||||||
::SHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA, NULL, SHGFP_TYPE_CURRENT, path);
|
::SHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA, NULL, SHGFP_TYPE_CURRENT, path);
|
||||||
local_app_data_path = path;
|
local_app_data_path = path;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -370,49 +370,48 @@ public:
|
||||||
const String& field = L"Defalut" /* 字段名称 */
|
const String& field = L"Defalut" /* 字段名称 */
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// 该数据是否存在
|
||||||
|
bool Exists() const;
|
||||||
|
|
||||||
// 保存 int 类型的值
|
// 保存 int 类型的值
|
||||||
void SaveInt(
|
bool SaveInt(
|
||||||
int value /* 数据 */
|
int value
|
||||||
);
|
);
|
||||||
|
|
||||||
// 保存 float 类型的值
|
// 保存 float 类型的值
|
||||||
void SaveDouble(
|
bool SaveFloat(
|
||||||
float value /* 数据 */
|
float value
|
||||||
|
);
|
||||||
|
|
||||||
|
// 保存 double 类型的值
|
||||||
|
bool SaveDouble(
|
||||||
|
double value
|
||||||
);
|
);
|
||||||
|
|
||||||
// 保存 bool 类型的值
|
// 保存 bool 类型的值
|
||||||
void SaveBool(
|
bool SaveBool(
|
||||||
bool value /* 数据 */
|
bool value
|
||||||
);
|
);
|
||||||
|
|
||||||
// 保存 字符串 类型的值
|
// 保存 String 类型的值
|
||||||
void SaveString(
|
bool SaveString(
|
||||||
const String& value /* 数据 */
|
const String& value
|
||||||
);
|
);
|
||||||
|
|
||||||
// 获取 int 类型的值
|
// 获取 int 类型的值
|
||||||
// (若不存在则返回 default_value 参数的值)
|
int GetInt() const;
|
||||||
int GetInt(
|
|
||||||
int default_value /* 默认值 */
|
|
||||||
);
|
|
||||||
|
|
||||||
// 获取 float 类型的值
|
// 获取 float 类型的值
|
||||||
// (若不存在则返回 default_value 参数的值)
|
float GetFloat() const;
|
||||||
float GetDouble(
|
|
||||||
float default_value /* 默认值 */
|
// 获取 double 类型的值
|
||||||
);
|
double GetDouble() const;
|
||||||
|
|
||||||
// 获取 bool 类型的值
|
// 获取 bool 类型的值
|
||||||
// (若不存在则返回 default_value 参数的值)
|
bool GetBool() const;
|
||||||
bool GetBool(
|
|
||||||
bool default_value /* 默认值 */
|
|
||||||
);
|
|
||||||
|
|
||||||
// 获取 字符串 类型的值
|
// 获取 字符串 类型的值
|
||||||
// (若不存在则返回 default_value 参数的值)
|
String GetString();
|
||||||
String GetString(
|
|
||||||
const String& default_value /* 默认值 */
|
|
||||||
);
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
String key_;
|
String key_;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue