1.1 --- a/Utilities/Configuration.cs Tue Feb 23 19:45:40 2010 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,158 +0,0 @@
1.4 -/*
1.5 -
1.6 - Version: MPL 1.1/GPL 2.0/LGPL 2.1
1.7 -
1.8 - The contents of this file are subject to the Mozilla Public License Version
1.9 - 1.1 (the "License"); you may not use this file except in compliance with
1.10 - the License. You may obtain a copy of the License at
1.11 -
1.12 - http://www.mozilla.org/MPL/
1.13 -
1.14 - Software distributed under the License is distributed on an "AS IS" basis,
1.15 - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
1.16 - for the specific language governing rights and limitations under the License.
1.17 -
1.18 - The Original Code is the Open Hardware Monitor code.
1.19 -
1.20 - The Initial Developer of the Original Code is
1.21 - Michael Möller <m.moeller@gmx.ch>.
1.22 - Portions created by the Initial Developer are Copyright (C) 2009-2010
1.23 - the Initial Developer. All Rights Reserved.
1.24 -
1.25 - Contributor(s):
1.26 -
1.27 - Alternatively, the contents of this file may be used under the terms of
1.28 - either the GNU General Public License Version 2 or later (the "GPL"), or
1.29 - the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
1.30 - in which case the provisions of the GPL or the LGPL are applicable instead
1.31 - of those above. If you wish to allow use of your version of this file only
1.32 - under the terms of either the GPL or the LGPL, and not to allow others to
1.33 - use your version of this file under the terms of the MPL, indicate your
1.34 - decision by deleting the provisions above and replace them with the notice
1.35 - and other provisions required by the GPL or the LGPL. If you do not delete
1.36 - the provisions above, a recipient may use your version of this file under
1.37 - the terms of any one of the MPL, the GPL or the LGPL.
1.38 -
1.39 -*/
1.40 -
1.41 -using System;
1.42 -using System.Collections.Generic;
1.43 -using System.Drawing;
1.44 -using System.IO;
1.45 -
1.46 -namespace OpenHardwareMonitor.Utilities {
1.47 -
1.48 - public sealed class Config {
1.49 - private static readonly Config instance = new Config();
1.50 -
1.51 - private string fileName;
1.52 -
1.53 - private System.Configuration.Configuration config;
1.54 -
1.55 - private Config() {
1.56 - this.fileName = Path.ChangeExtension(
1.57 - System.Windows.Forms.Application.ExecutablePath, ".config");
1.58 - System.Configuration.ExeConfigurationFileMap fileMap =
1.59 - new System.Configuration.ExeConfigurationFileMap();
1.60 - fileMap.ExeConfigFilename = fileName;
1.61 - config = System.Configuration.ConfigurationManager.
1.62 - OpenMappedExeConfiguration(fileMap,
1.63 - System.Configuration.ConfigurationUserLevel.None);
1.64 - }
1.65 -
1.66 - ~Config() {
1.67 - string tempName = Path.ChangeExtension(fileName, ".tmp");
1.68 -
1.69 - if (File.Exists(tempName))
1.70 - File.Delete(tempName);
1.71 - try {
1.72 - config.SaveAs(tempName);
1.73 - if (File.Exists(fileName) && File.Exists(tempName))
1.74 - File.Delete(fileName);
1.75 - File.Move(tempName, fileName);
1.76 - } catch (System.Configuration.ConfigurationErrorsException) { }
1.77 - }
1.78 -
1.79 - public static Config Settings {
1.80 - get {
1.81 - return instance;
1.82 - }
1.83 - }
1.84 -
1.85 - public string this[string name] {
1.86 - get {
1.87 - System.Configuration.KeyValueConfigurationElement element =
1.88 - config.AppSettings.Settings[name];
1.89 - if (element != null)
1.90 - return element.Value;
1.91 - else
1.92 - return null;
1.93 - }
1.94 - set {
1.95 - config.AppSettings.Settings.Remove(name);
1.96 - config.AppSettings.Settings.Add(name, value);
1.97 - }
1.98 - }
1.99 -
1.100 - public static bool Contains(string name) {
1.101 - System.Configuration.KeyValueConfigurationElement element =
1.102 - instance.config.AppSettings.Settings[name];
1.103 - return element != null;
1.104 - }
1.105 -
1.106 - public static void Remove(string name) {
1.107 - instance.config.AppSettings.Settings.Remove(name);
1.108 - }
1.109 -
1.110 - public static void Set(string name, bool value) {
1.111 - instance[name] = value ? "true" : "false";
1.112 - }
1.113 -
1.114 - public static bool Get(string name, bool value) {
1.115 - System.Configuration.KeyValueConfigurationElement element =
1.116 - instance.config.AppSettings.Settings[name];
1.117 - if (element == null)
1.118 - return value;
1.119 - else
1.120 - return element.Value == "true";
1.121 - }
1.122 -
1.123 - public static void Set(string name, int value) {
1.124 - instance[name] = value.ToString();
1.125 - }
1.126 -
1.127 - public static int Get(string name, int value) {
1.128 - System.Configuration.KeyValueConfigurationElement element =
1.129 - instance.config.AppSettings.Settings[name];
1.130 - if (element == null)
1.131 - return value;
1.132 - else {
1.133 - int parsedValue;
1.134 - if (int.TryParse(element.Value, out parsedValue))
1.135 - return parsedValue;
1.136 - else
1.137 - return value;
1.138 - }
1.139 - }
1.140 -
1.141 - public static void Set(string name, Color color) {
1.142 - instance[name] = color.ToArgb().ToString("X8");
1.143 - }
1.144 -
1.145 - public static Color Get(string name, Color value) {
1.146 - System.Configuration.KeyValueConfigurationElement element =
1.147 - instance.config.AppSettings.Settings[name];
1.148 - if (element == null)
1.149 - return value;
1.150 - else {
1.151 - int parsedValue;
1.152 - if (int.TryParse(element.Value,
1.153 - System.Globalization.NumberStyles.HexNumber,
1.154 - System.Globalization.CultureInfo.InvariantCulture, out parsedValue))
1.155 - return Color.FromArgb(parsedValue);
1.156 - else
1.157 - return value;
1.158 - }
1.159 - }
1.160 - }
1.161 -}