CEGUI自定义控件及适配CEED编辑器
<一>. 自定义控件
首先大致描述一下我理解的自定义控件。
a. CEGUI自带的控件不能满足自己需求
b. 我们通常从CEGUI::Window派生
这个是伪代码(cxx范本, 本文尽量只列出关键部分, 讲诉原理,可能存在部分错误)
我们这里使用CEGUI::Button做派生例子,CEGUI::Window因为无需Falagard资源映射,没有代表性.
widget_name.h
#include "CEGUI/Window.h"
class widget_name : public CEGUI::Button
{
public:
static const CEGUI::String WidgetTypeName;
//! MemberValue PropertyName.
static const CEGUI::String MemberValuePropertyName;
private:
float d_member_value;
public:
widget_name(const CEGUI::String& type, const CEGUI::String& name);
public:
void set_member_value(float _v);
float get_member_value() const;
private:
void add_widget_name_properties();
};
widget_name.cpp
const CEGUI::String widget_name::WidgetTypeName("mm/widget_name");
const CEGUI::String widget_name::MemberValuePropertyName("MemberValue");
widget_name::widget_name(const CEGUI::String& type, const CEGUI::String& name)
: CEGUI::Window(type, name)
, d_member_value(1.0f)
{
this->add_widget_name_properties();
}
void widget_name::set_member_value(float _v)
{
this->d_member_value = _v;
}
float widget_name::get_member_value() const
{
return this->d_member_value;
}
void widget_name::add_widget_name_properties()
{
const CEGUI::String pro