Tree putSubFolder(Tree folder, Tree path, Tree item) { if (isNil(path)) { //return putFolder(folder, item); return addToFolder(folder, item); } else { Tree subfolder = getFolder(folder, hd(path)); if (isUiFolder(subfolder)) { return putFolder(folder, putSubFolder(subfolder, tl(path), item)); } else { return putFolder(folder, makeSubFolderChain(path, item)); } } }
/** * Add a widget with a certain path to the user interface tree */ void Compiler::addUIWidget(Tree path, Tree widget) { fUIRoot = putSubFolder(fUIRoot, path, widget); }