<?xml version="1.0"?> <!-- ################################################### ##Variable Config block: ## a variable that reads and writes to a config file ################################################### --> <block> <name>Variable Config</name> <key>variable_config</key> <import>import ConfigParser</import> <var_make>self._$(id)_config = ConfigParser.ConfigParser() self._$(id)_config.read($config_file) try: $(id) = self._$(id)_config.$(type.get)($section, $option) except: $(id) = $value self.$(id) = $(id)</var_make> <make></make> <callback>self.set_$(id)($value)</callback> <callback>self._$(id)_config = ConfigParser.ConfigParser() self._$(id)_config.read($config_file) if not self._$(id)_config.has_section($section): self._$(id)_config.add_section($section) self._$(id)_config.set($section, $option, str($writeback)) self._$(id)_config.write(open($config_file, 'w'))</callback> <param> <name>Default Value</name> <key>value</key> <value>0</value> <type>$type</type> </param> <param> <name>Type</name> <key>type</key> <value>real</value> <type>enum</type> <option> <name>Float</name> <key>real</key> <opt>get:getfloat</opt> </option> <option> <name>Int</name> <key>int</key> <opt>get:getint</opt> </option> <option> <name>Bool</name> <key>bool</key> <opt>get:getboolean</opt> </option> <option> <name>String</name> <key>string</key> <opt>get:get</opt> </option> </param> <param> <name>Config File</name> <key>config_file</key> <value>default</value> <type>file_open</type> </param> <param> <name>Section</name> <key>section</key> <value>main</value> <type>string</type> </param> <param> <name>Option</name> <key>option</key> <value>key</value> <type>string</type> </param> <param> <name>WriteBack</name> <key>writeback</key> <value>None</value> <type>raw</type> </param> <doc> This block represents a variable that can be read from a config file. To save the value back into the config file: \ enter the name of another variable into the writeback param. \ When the other variable is changed at runtime, the config file will be re-written. </doc> </block>