summaryrefslogtreecommitdiff
path: root/inputmethods/dasher/SettingsStore.cpp
Side-by-side diff
Diffstat (limited to 'inputmethods/dasher/SettingsStore.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--inputmethods/dasher/SettingsStore.cpp135
1 files changed, 135 insertions, 0 deletions
diff --git a/inputmethods/dasher/SettingsStore.cpp b/inputmethods/dasher/SettingsStore.cpp
new file mode 100644
index 0000000..c5bbfea
--- a/dev/null
+++ b/inputmethods/dasher/SettingsStore.cpp
@@ -0,0 +1,135 @@
+// SettingsStore.cpp
+//
+/////////////////////////////////////////////////////////////////////////////
+//
+// Copyright (c) 2002 Iain Murray
+//
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+
+#include "SettingsStore.h"
+
+using namespace std;
+
+/* TODO: Consider using Template functions to make this neater. */
+
+
+bool CSettingsStore::GetBoolOption(const string& Key)
+{
+ if (BoolMap.find(Key)==BoolMap.end()) {
+ bool Value = false;
+ LoadSetting(Key, &Value);
+ BoolMap[Key] = Value;
+ }
+
+ return BoolMap[Key];
+}
+
+
+long CSettingsStore::GetLongOption(const string& Key)
+{
+ if (LongMap.find(Key)==LongMap.end()) {
+ long Value = 0l;
+ LoadSetting(Key, &Value);
+ LongMap[Key] = Value;
+ }
+
+ return LongMap[Key];
+}
+
+
+string& CSettingsStore::GetStringOption(const string& Key)
+{
+ if (StringMap.find(Key)==StringMap.end()) {
+ string Value = "";
+ LoadSetting(Key, &Value);
+ StringMap[Key] = Value;
+ }
+
+ return StringMap[Key];
+}
+
+
+void CSettingsStore::SetBoolOption(const string& Key, bool Value)
+{
+ BoolMap[Key] = Value;
+ SaveSetting(Key, Value);
+}
+
+
+void CSettingsStore::SetLongOption(const string& Key, long Value)
+{
+ LongMap[Key] = Value;
+ SaveSetting(Key, Value);
+}
+
+
+void CSettingsStore::SetStringOption(const string& Key, const string& Value)
+{
+ StringMap[Key] = Value;
+ SaveSetting(Key, Value);
+}
+
+
+void CSettingsStore::SetBoolDefault(const string& Key, bool Value)
+{
+ bool TmpValue;
+ if ( (BoolMap.find(Key)==BoolMap.end()) && (!LoadSetting(Key, &TmpValue)) )
+ SetBoolOption(Key, Value);
+}
+
+
+void CSettingsStore::SetLongDefault(const string& Key, long Value)
+{
+ long TmpValue;
+ if ( (LongMap.find(Key)==LongMap.end()) && (!LoadSetting(Key, &TmpValue)) )
+ SetLongOption(Key, Value);
+}
+
+
+void CSettingsStore::SetStringDefault(const string& Key, const string& Value)
+{
+ string TmpValue;
+ if ( (StringMap.find(Key)==StringMap.end()) && (!LoadSetting(Key, &TmpValue)) )
+ SetStringOption(Key, Value);
+}
+
+
+/* Private functions -- Settings are not saved between sessions unless these
+functions are over-ridden.
+--------------------------------------------------------------------------*/
+
+
+bool CSettingsStore::LoadSetting(const string& Key, bool* Value)
+{
+ return false;
+}
+
+
+bool CSettingsStore::LoadSetting(const string& Key, long* Value)
+{
+ return false;
+}
+
+
+bool CSettingsStore::LoadSetting(const string& Key, string* Value)
+{
+ return false;
+}
+
+
+void CSettingsStore::SaveSetting(const string& Key, bool Value)
+{
+}
+
+
+void CSettingsStore::SaveSetting(const string& Key, long Value)
+{
+}
+
+
+void CSettingsStore::SaveSetting(const string& Key, const string& Value)
+{
+}