
get an object pointer from the ptree by using "namespace.(namespace...).object" as a path, then invoke verb on that object. For all its simplicity, this is amazingly useful, too. You can build a key binding module on top of that:
ctrl+o factory.document.open ctrl+n factory.document.new
and so on. You can also add events to your buttons or menus in this way. It's not Python, but it may be enough.
This reminds me of another way I used ptree, but because that was several years ago, the details escaped my memory. Basically, it was used as a simple "scripting language". The language was mostly used for evaluating conditions specified in text files. They were read into a property tree, and then a very simple function evaluated them. Hierarchical structure of the data turned out to be very well suited for specifying arbitrarily complex conditions. For example this condition: if (v1 == v2 && (v3 < v4 || v5 > v6)) was encoded like that in the file: Condition And { Equals { Value1 v1 Value2 v2 } Condition Or { Less { Value1 v3 Value2 v4 } Greater { Value1 v5 Value2 v6 } } } This is quite an obscure example, but hopefully shows that ptree has potential uses thay go beyond "configuration reading/writing". This of course could be done using a full blown scripting language like Python. But why summon the monster snake when ptree + a function that was slightly more than 1 screen were enough? Best regards, Marcin