コード例 #1
0
ファイル: project.cpp プロジェクト: Cassie90/ClanLib
void Project::save_item(DomElement dom_parent, ProjectItem *item)
{
	DomElement dom_item;
	if (dynamic_cast<ProjectFolderItem*>(item))
	{
		ProjectFolderItem *folder_item = dynamic_cast<ProjectFolderItem*>(item);
		dom_item = dom_parent.get_owner_document().create_element("folder");
		dom_item.set_child_string("path", folder_item->path);
	}
	else if (dynamic_cast<ProjectFilterItem*>(item))
	{
		ProjectFilterItem *filter_item = dynamic_cast<ProjectFilterItem*>(item);
		dom_item = dom_parent.get_owner_document().create_element("filter");
		dom_item.set_child_string("name", filter_item->name);
	}
	else if (dynamic_cast<ProjectFileItem*>(item))
	{
		ProjectFileItem *file_item = dynamic_cast<ProjectFileItem*>(item);
		dom_item = dom_parent.get_owner_document().create_element("file");
		dom_item.set_child_string("filename", file_item->filename);
	}
	else
	{
		throw Exception("Unknown item type");
	}

	save_item_children(dom_item, item);
	dom_parent.append_child(dom_item);
}
コード例 #2
0
ファイル: project.cpp プロジェクト: Cassie90/ClanLib
void Project::save_item_children(DomElement dom_parent, ProjectItem *item)
{
	if (!item->children().empty())
	{
		DomElement dom_items = dom_parent.get_owner_document().create_element("items");
		for (size_t i = 0; i < item->children().size(); i++)
		{
			save_item(dom_items, item->children()[i]);
		}
		dom_parent.append_child(dom_items);
	}
}