def _store(self, r, name, tp, value): """ Stores value in registry, handling special types """ if tp in (unicode, str): _winreg.SetValueEx(r, name, 0, _winreg.REG_SZ, str(value)) elif tp in (int, bool): _winreg.SetValueEx(r, name, 0, _winreg.REG_DWORD, int(value)) elif tp in (list, tuple): if not value is None: # None is default value for window_position _winreg.SetValueEx(r, "%s_size" % (name,), 0, _winreg.REG_DWORD, len(value)) for i in xrange(0, len(value)): self._store(r, "%s_%s" % (name, i), type(value[i]), value[i]) else: _winreg.SetValueEx(r, name, 0, _winreg.REG_SZ, serializer(value))
def _store(self, r, name, tp, value): """ Stores value in registry, handling special types """ if tp in (unicode, str): _winreg.SetValueEx(r, name, 0, _winreg.REG_SZ, str(value)) elif tp in (int, bool): value = int(value) if value > 0xFFFF: raise ValueError("Overflow") if value < 0: # This basicaly prevents storing anything >0xFFFF to registry. # Luckily, that shouldn't be needed, largest thing stored as int is 20 value = 0xFFFF + (-value) _winreg.SetValueEx(r, name, 0, _winreg.REG_DWORD, int(value)) elif tp in (list, tuple): if not value is None: # None is default value for window_position _winreg.SetValueEx(r, "%s_size" % (name,), 0, _winreg.REG_DWORD, len(value)) for i in xrange(0, len(value)): self._store(r, "%s_%s" % (name, i), type(value[i]), value[i]) else: _winreg.SetValueEx(r, name, 0, _winreg.REG_SZ, serializer(value))
def _store(self, r, name, tp, value): """ Stores value in registry, handling special types """ if tp == str: winreg.SetValueEx(r, name, 0, winreg.REG_SZ, str(value)) elif tp in (int, bool): value = int(value) if value > 0xFFFF: raise ValueError("Overflow") if value < 0: # This basicaly prevents storing anything >0xFFFF to registry. # Luckily, that shouldn't be needed, largest thing stored as int is 20 value = 0xFFFF + (-value) winreg.SetValueEx(r, name, 0, winreg.REG_DWORD, int(value)) elif tp in (list, tuple): if not value is None: # None is default value for window_position winreg.SetValueEx(r, "%s_size" % (name,), 0, winreg.REG_DWORD, len(value)) for i in range(0, len(value)): self._store(r, "%s_%s" % (name, i), type(value[i]), value[i]) else: winreg.SetValueEx(r, name, 0, winreg.REG_SZ, serializer(value))