第二人生的源码分析(八十四)保存UI的界面布局

前面介绍都是怎么样创建 UI界面,这显然是在程序启动时需要做的工作,但是当用户改变了界面的布局之后,或者添加一些显示界面之后,就需要把它们保存起来,以便用户所有的变化在程序关闭之后仍然保存起来,然后在程序再次启动之后再从XML文件加载出来。下面就来看看第二人生里这段代码的实现,如下:
#001 S32 LLUICtrlFactory::saveToXML(LLView* viewp, const LLString& filename)
#002 {
 
下面创建一个流文件输出对象。
#003     llofstream out(filename.c_str());
 
判断这个流文件是否创建成功。
#004     if (!out.good())
#005     {
#006         llwarns << "Unable to open " << filename << " for output." << llendl;
#007         return 1;
#008     }
#009 
 
向这个文件输出 XML文件头。
#010     out << XML_HEADER;
#011 
 
获取这个界面的 XML节点类。
#012     LLXMLNodePtr xml_node = viewp->getXML();
#013 
 
把界面布局和组件保存到流对象文件里。
#014     xml_node->writeToOstream(out);
#015 
 
关闭流对象文件。
#016     out.close();
#017     return 0;
#018 }
#019 
 
上面的代码主要通过打开 C++的流文件对象,然后把界面的XML描述保存到文件里,就实现了把界面布局保存起来的任务。
 

你可能感兴趣的:(第二人生的源码分析(八十四)保存UI的界面布局)