mirror of
https://github.com/chibicitiberiu/rainmeter-studio.git
synced 2024-02-24 04:33:31 +00:00
NumOfDecimals is now enabled when Percentual=1 in STRING meter.
This commit is contained in:
parent
6fe8fd0aa7
commit
5ab0192d41
@ -510,7 +510,17 @@ const WCHAR* CMeasure::GetStringValue(bool autoScale, double scale, int decimals
|
|||||||
|
|
||||||
if(percentual)
|
if(percentual)
|
||||||
{
|
{
|
||||||
swprintf(buffer, L"%i", (UINT)(100.0 * GetRelativeValue()));
|
double val = 100.0 * GetRelativeValue();
|
||||||
|
|
||||||
|
if (decimals == 0)
|
||||||
|
{
|
||||||
|
swprintf(buffer, L"%i", (UINT)val);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
swprintf(format, L"%%.%if", decimals);
|
||||||
|
swprintf(buffer, format, val);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(autoScale)
|
else if(autoScale)
|
||||||
{
|
{
|
||||||
@ -518,15 +528,16 @@ const WCHAR* CMeasure::GetStringValue(bool autoScale, double scale, int decimals
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
double val = GetValue() * (1.0 / scale);
|
||||||
|
|
||||||
if(decimals == 0)
|
if(decimals == 0)
|
||||||
{
|
{
|
||||||
double val = GetValue() * (1.0 / scale);
|
|
||||||
val += (val >= 0) ? 0.5 : -0.5;
|
val += (val >= 0) ? 0.5 : -0.5;
|
||||||
swprintf(buffer, L"%lli", (LONGLONG)val);
|
swprintf(buffer, L"%lli", (LONGLONG)val);
|
||||||
}
|
}
|
||||||
else if (decimals == -1)
|
else if (decimals == -1)
|
||||||
{
|
{
|
||||||
swprintf(buffer, L"%.5f", GetValue() * (1.0 / scale));
|
swprintf(buffer, L"%.5f", val);
|
||||||
|
|
||||||
size_t len = wcslen(buffer);
|
size_t len = wcslen(buffer);
|
||||||
if (len >= 6 && wcscmp(buffer + len - 6, L".00000") == 0)
|
if (len >= 6 && wcscmp(buffer + len - 6, L".00000") == 0)
|
||||||
@ -537,7 +548,7 @@ const WCHAR* CMeasure::GetStringValue(bool autoScale, double scale, int decimals
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
swprintf(format, L"%%.%if", decimals);
|
swprintf(format, L"%%.%if", decimals);
|
||||||
swprintf(buffer, format, GetValue() * (1.0 / scale));
|
swprintf(buffer, format, val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -272,7 +272,7 @@ void CMeterString::ReadConfig(const WCHAR* section)
|
|||||||
std::wstring scale;
|
std::wstring scale;
|
||||||
scale = parser.ReadString(section, L"Scale", L"1");
|
scale = parser.ReadString(section, L"Scale", L"1");
|
||||||
|
|
||||||
if (wcschr(scale.c_str(), '.') == NULL)
|
if (scale.find(L'.') == std::wstring::npos)
|
||||||
{
|
{
|
||||||
m_NoDecimals = true;
|
m_NoDecimals = true;
|
||||||
}
|
}
|
||||||
@ -396,8 +396,7 @@ bool CMeterString::Update()
|
|||||||
{
|
{
|
||||||
std::vector<std::wstring> stringValues;
|
std::vector<std::wstring> stringValues;
|
||||||
|
|
||||||
int decimals = (m_NoDecimals && !m_AutoScale) ? 0 : 1;
|
int decimals = (m_NumOfDecimals != -1) ? m_NumOfDecimals : (m_NoDecimals && (m_Percentual || !m_AutoScale)) ? 0 : 1;
|
||||||
if (m_NumOfDecimals != -1) decimals = m_NumOfDecimals;
|
|
||||||
|
|
||||||
if (m_Measure) stringValues.push_back(m_Measure->GetStringValue(m_AutoScale, m_Scale, decimals, m_Percentual));
|
if (m_Measure) stringValues.push_back(m_Measure->GetStringValue(m_AutoScale, m_Scale, decimals, m_Percentual));
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user