From d3e4a2b6a48c7458d717e6eb3c679892a3328500 Mon Sep 17 00:00:00 2001 From: Brian Ferguson Date: Wed, 1 Jan 2014 09:33:40 -0700 Subject: [PATCH] MeasureString - New measure for simple manipulation of strings as a measure. --- Library/MeasureString.cpp | 67 +++++++++++++++++++++++++++++++++++++++ Library/MeasureString.h | 43 +++++++++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 Library/MeasureString.cpp create mode 100644 Library/MeasureString.h diff --git a/Library/MeasureString.cpp b/Library/MeasureString.cpp new file mode 100644 index 00000000..19a3394e --- /dev/null +++ b/Library/MeasureString.cpp @@ -0,0 +1,67 @@ +/* +Copyright (C) 2014 Brian Ferguson + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#include "StdAfx.h" +#include "MeasureString.h" +#include "Rainmeter.h" + +/* +** The constructor +** +*/ +MeasureString::MeasureString(MeterWindow* meterWindow, const WCHAR* name) : Measure(meterWindow, name), + m_String() +{ +} + +/* +** The destructor +** +*/ +MeasureString::~MeasureString() +{ +} + +/* +** Read the options specified in the ini file. +** +*/ +void MeasureString::ReadOptions(ConfigParser& parser, const WCHAR* section) +{ + Measure::ReadOptions(parser, section); + + m_String = parser.ReadString(section, L"String", L""); +} + +/* +** Converts the string to a number (if possible). +** +*/ +void MeasureString::UpdateValue() +{ + m_Value = (double)_wtoi(m_String.c_str()); +} + +/* +** Returns the string value of the measure. +** +*/ +const WCHAR* MeasureString::GetStringValue() +{ + return CheckSubstitute(m_String.c_str()); +} diff --git a/Library/MeasureString.h b/Library/MeasureString.h new file mode 100644 index 00000000..0a9098a5 --- /dev/null +++ b/Library/MeasureString.h @@ -0,0 +1,43 @@ +/* +Copyright (C) 2014 Brian Ferguson + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#ifndef __MEASURESTRING_H__ +#define __MEASURESTRING_H__ + +#include +#include "Measure.h" + +class MeasureString : public Measure +{ +public: + MeasureString(MeterWindow* meterWindow, const WCHAR* name); + virtual ~MeasureString(); + + virtual const WCHAR* GetStringValue(); + + virtual UINT GetTypeID() { return TypeID(); } + +protected: + virtual void ReadOptions(ConfigParser& parser, const WCHAR* section); + virtual void UpdateValue(); + +private: + std::wstring m_String; +}; + +#endif