 
 bool CloseAllUIElements()
 {
+    ui.cursor.shape = CS_BUSY;
+
     suppressUIElementChanges = true;
 
     editorUIElement.RemoveAllChildren();


bool CloseUIElement()
{
    suppressUIElementChanges = true;

    for (uint i = 0; i < selectedUIElements.length; ++i)


void LoadChildUIElement(const String&in fileName)
{
    if (fileName.empty)
        return;

    ui.cursor.shape = CS_BUSY;

    if (!fileSystem.FileExists(fileName))
    {
        log.Error("No such file: " + fileName);
        return;
    }

    File file(fileName, FILE_READ);
    if (!file.open)
        return;

    XMLFile@ xmlFile = XMLFile();
    xmlFile.Load(file);

    suppressUIElementChanges = true;

    if (editUIElement.LoadXML(xmlFile, uiElementDefaultStyle !is null ? uiElementDefaultStyle : uiStyle))
        UpdateHierarchyItem(editUIElement.children[editUIElement.numChildren - 1]);
    
    suppressUIElementChanges = false;
}

void SaveChildUIElement(const String&in fileName)
