7 internal class RegistryConfig
: IConfig
9 static string path
= "Software/Eithne/";
11 Config
.Callback UpdateHandler
;
13 public RegistryConfig(Config
.Callback UpdateHandler
)
15 this.UpdateHandler
= UpdateHandler
;
18 private string[] Split(string key
)
20 string[] ret
= new string[2];
22 ret
[0] = Path
.GetDirectoryName(path
+ key
);
23 ret
[0].Replace("/", "\\");
25 ret
[1] = Path
.GetFileName(key
);
30 public void Set(string key
, string val
)
32 string[] r
= Split(key
);
34 RegistryKey k
= Registry
.CurrentUser
.OpenSubKey(r
[0], true);
37 k
= Registry
.CurrentUser
.CreateSubKey(r
[0]);
39 k
.SetValue(r
[1], val
);
47 public void Set(string key
, int val
)
49 string[] r
= Split(key
);
51 RegistryKey k
= Registry
.CurrentUser
.OpenSubKey(r
[0], true);
54 k
= Registry
.CurrentUser
.CreateSubKey(r
[0]);
56 k
.SetValue(r
[1], val
);
64 public void Set(string key
, bool val
)
66 string[] r
= Split(key
);
68 RegistryKey k
= Registry
.CurrentUser
.OpenSubKey(r
[0], true);
71 k
= Registry
.CurrentUser
.CreateSubKey(r
[0]);
84 public string Get(string key
, string def
)
86 string[] r
= Split(key
);
88 RegistryKey k
= Registry
.CurrentUser
.OpenSubKey(r
[0], true);
91 k
= Registry
.CurrentUser
.CreateSubKey(r
[0]);
93 string val
= (string)k
.GetValue(r
[1]);
97 k
.SetValue(r
[1], def
);
107 public int Get(string key
, int def
)
109 string[] r
= Split(key
);
111 RegistryKey k
= Registry
.CurrentUser
.OpenSubKey(r
[0], true);
114 k
= Registry
.CurrentUser
.CreateSubKey(r
[0]);
116 object val
= k
.GetValue(r
[1]);
120 k
.SetValue(r
[1], def
);
130 public bool Get(string key
, bool def
)
132 string[] r
= Split(key
);
134 RegistryKey k
= Registry
.CurrentUser
.OpenSubKey(r
[0], true);
137 k
= Registry
.CurrentUser
.CreateSubKey(r
[0]);
139 object val
= k
.GetValue(r
[1]);