summaryrefslogtreecommitdiff
path: root/grc/blocks/variable_config.xml
diff options
context:
space:
mode:
Diffstat (limited to 'grc/blocks/variable_config.xml')
-rw-r--r--grc/blocks/variable_config.xml88
1 files changed, 88 insertions, 0 deletions
diff --git a/grc/blocks/variable_config.xml b/grc/blocks/variable_config.xml
new file mode 100644
index 000000000..11bff9edc
--- /dev/null
+++ b/grc/blocks/variable_config.xml
@@ -0,0 +1,88 @@
+<?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>