在CEGUI中使用layout文件(1)
CEGUI支持两种方式的资源使用,一种就是在前文可见的直接在c++文件当中创建窗体,使用窗体;另一种方式就是在layout文件当中定制窗体。从理论上讲,两种方式都能达到相同的目的。
在不使用layout文件时,CEGUI是不太方便的,因为要定位控件,常常得修改文件当中的参数,如果在c++文件当中修改,每次都编译,很恶心(尤其是在有编辑器的情况下,使用c++就不能使用了)。
所以如果你要使用CEGUI,对layout文件的使用和编辑都是必修课。
下面这个就是一个简单的使用layout文件的例子,作的仅仅是把文件读进来、显示在窗口里了。
#include "TDemo1.h"
#include "CEGUI.h"
#include "CEGuiBaseApplication.h"

#include <cstdlib>

int main(int argc, char *argv[])

...{
TDemo1 app;
return app.run();
}


/**//*************************************************************************

*************************************************************************/
bool TDemo1::initialiseSample()

...{
using namespace CEGUI;

// 窗体管理器
WindowManager& winMgr = WindowManager::getSingleton();

// 载入资源
SchemeManager::getSingleton().loadScheme("TaharezLook.scheme");
System::getSingleton().setDefaultMouseCursor("TaharezLook", "MouseArrow");
FontManager::getSingleton().createFont("Commonwealth-10.font");
// 在此载入layout文件
// 这个就是要在实际当中经常使用的
Window* sheet = winMgr.loadWindowLayout("TDemo1.layout");
System::getSingleton().setGUISheet(sheet);

return true;
}


/**//*************************************************************************

*************************************************************************/
void TDemo1::cleanupSample()

...{
// 啥也不做
}
TDemo1.layout
<?xml version="1.0" encoding="UTF-8"?>
<GUILayout>
<Window Type="DefaultWindow" Name="root">
<Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
<Property Name="UnifiedAreaRect" Value="{{0,0},{0,0},{1,0},{1,0}}" />
<Window Type="TaharezLook/FrameWindow" Name="TDemo1/Window1" >
<Property Name="Text" Value="TDemo 1" />
<Property Name="UnifiedMaxSize" Value="{{0.8,0},{0.8,0}}" />
<Property Name="UnifiedMinSize" Value="{{0.2,0},{0.2,0}}" />
<Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.1,0},{0.9,0},{0.7,0}}" />
<Property Name="CloseButtonEnabled" Value="False" />
</Window>
</Window>
</GUILayout>
