-# temp stuff :)
+class configFile:
+ def __init__(self):
+ pass
+
+ def openFile(self):
+ try:
+ self.file = open("config")
+ except IOError:
+ self.file = ""
+
+ def getKey(self, key, dataType):
+ self.openFile() #good idea? (open every time we need it?) else we have to seek
+ while 1:
+ line = self.file.readline()
+ if line == "":
+ break
+ if line.startswith(key):
+ x = line.find("=")
+ if x > -1:
+ self.file.close()
+ return dataType(line[x + 1:])
+
+ self.file.close()
+ return ""
+
class configBoolean:
- def __init__(self, reg):
- self.reg = reg
- self.val = 0
-
- def toggle(self):
- self.val += 1
- self.val %= 3
-
- def __str__(self):
- return ("NO", "YES", "MAYBE")[self.val]
+ def __init__(self, parent):
+ self.parent = parent
+
+ def checkValues(self):
+ if self.parent.value < 0:
+ self.parent.value = 0
+
+ if(self.parent.value >= (len(self.parent.vals) - 1)):
+ self.parent.value = len(self.parent.vals) - 1
+
+ def cancel(self):
+ self.parent.reload()
+
+ def save(self):
+ print "save bool"
+
+ def handleKey(self, key):
+ if key == 1:
+ self.parent.value = self.parent.value - 1
+ if key == 2:
+ self.parent.value = self.parent.value + 1
+
+ self.checkValues()
+
+ self.parent.change()
+
+ def __call__(self): #needed by configlist
+ self.checkValues()
+ return ("text", self.parent.vals[self.parent.value])
class configValue:
def __init__(self, obj):
def __str__(self):
return self.obj
-def configEntry(obj):
- # das hier ist ein zugriff auf die registry...
- if obj == "HKEY_LOCAL_ENIGMA/IMPORTANT/USER_ANNOYING_STUFF/SDTV/FLASHES/GREEN":
- return ("SDTV green flashes", configBoolean(obj))
- elif obj == "HKEY_LOCAL_ENIGMA/IMPORTANT/USER_ANNOYING_STUFF/HDTV/FLASHES/GREEN":
- return ("HDTV reen flashes", configBoolean(obj))
- else:
- return ("invalid", "")
+class Config:
+ def __init__(self):
+ pass
-class config:
+ def saveLine(self, file, element):
+ #FIXME can handle INTs only
+ line = element.configPath + "=" + str(element.value) + "\n"
+ file.write(line)
+
+ def save(self):
+ fileHandle = open("config", "w")
+
+ for groupElement in self.__dict__.items():
+ for element in groupElement[1].__dict__.items():
+ self.saveLine(fileHandle, element[1])
+
+ fileHandle.close()
+
+ while 1:
+ pass
+
+config = Config();
+configfile = configFile()
+
+class ConfigSlider:
+ def __init__(self, parent):
+ self.parent = parent
+
+ def cancel(self):
+ self.parent.reload()
+
+ def save(self):
+ print "slider - save"
+
+ def checkValues(self):
+ if self.parent.value < 0:
+ self.parent.value = 0
+
+ if self.parent.value > 10:
+ self.parent.value = 10
+
+ def handleKey(self, key):
+ if key == 1:
+ self.parent.value = self.parent.value - 1
+ if key == 2:
+ self.parent.value = self.parent.value + 1
+
+ self.checkValues()
+ self.parent.change()
+
+ def __call__(self): #needed by configlist
+ self.checkValues()
+ return ("slider", self.parent.value * 10)
+
+class ConfigSubsection:
def __init__(self):
pass
- def Slider(self): # ok???
- pass
class configElement:
- def __init__(self, configPath, control, defaultValue):
+ def dataType(self, control):
+ if control == ConfigSlider:
+ return int;
+ elif control == configBoolean:
+ return int;
+ else:
+ return ""
+
+ def loadData(self):
+ try:
+ value = configfile.getKey(self.configPath, self.dataType(self.controlType))
+ except:
+ value = ""
+
+ if value == "":
+ print "value not found - using default"
+ self.value = self.defaultValue
+ else:
+ self.value = value
+ print "value ok"
+
+ def __init__(self, configPath, control, defaultValue, vals):
self.configPath = configPath
- self.value = 0 #read from registry else use default
+ self.defaultValue = defaultValue
self.controlType = control
+ self.vals = vals
self.notifierList = [ ]
+ self.loadData()
def addNotifier(self, notifier):
self.notifierList.append(notifier);
notifier(self);
+ def change(self):
+ for notifier in self.notifierList:
+ notifier(self)
+ def reload(self):
+ self.loadData()