slot 0.0.1
A real time UI render framework
载入中...
搜索中...
未找到
| Public 成员函数 | Private 成员函数 | Private 属性 | 所有成员列表
z8::SceneObjectDetailsBinding类 参考final

#include <SceneObjectDetailsBinding.h>

z8::SceneObjectDetailsBinding 的协作图:
Collaboration graph
[图例]

struct  FieldBinding
 

Public 成员函数

 SceneObjectDetailsBinding (ui::Layout &layout, ResourceManager &resources, std::function< void()> resourcesChanged={})
 
 ~SceneObjectDetailsBinding ()=default
 
void Bind (GameObject *object, ui::TreeViewItemNode *treeItem=nullptr)
 
void Synchronize ()
 
void Unbind ()
 

Private 成员函数

void BindField (const char *key, std::function< std::string()> read, std::function< bool(const std::string &)> write)
 
void BindFloat (const char *key, float &value, std::function< void()> valueChanged={})
 
void SetInputsEnabled (bool enabled)
 

Private 属性

ui::LayoutEditorLayout
 
ResourceManagerResources
 
std::function< void()> ResourcesChanged
 
std::vector< FieldBindingFields
 

详细描述

把 Details 的保留式 TextInput 投影到一个场景对象。

控件不拥有业务数据;输入回调只修改当前对象,逐帧同步则把外部模型变化拉回 未聚焦的输入框。聚焦字段由用户暂时拥有,避免半成品数字被下一帧覆盖。

构造及析构函数说明

◆ SceneObjectDetailsBinding()

SceneObjectDetailsBinding::SceneObjectDetailsBinding ( ui::Layout & layout,
ResourceManager & resources,
std::function< void()> resourcesChanged = {} )

◆ ~SceneObjectDetailsBinding()

z8::SceneObjectDetailsBinding::~SceneObjectDetailsBinding ( )
default

成员函数说明

◆ Bind()

void SceneObjectDetailsBinding::Bind ( GameObject * object,
ui::TreeViewItemNode * treeItem = nullptr )

重新绑定选择;treeItem 只用于让名称修改同步更新 World Outliner。

函数调用图:

◆ BindField()

void SceneObjectDetailsBinding::BindField ( const char * key,
std::function< std::string()> read,
std::function< bool(const std::string &)> write )
private
函数调用图:
这是这个函数的调用关系图:

◆ BindFloat()

void SceneObjectDetailsBinding::BindFloat ( const char * key,
float & value,
std::function< void()> valueChanged = {} )
private
函数调用图:
这是这个函数的调用关系图:

◆ SetInputsEnabled()

void SceneObjectDetailsBinding::SetInputsEnabled ( bool enabled)
private
函数调用图:
这是这个函数的调用关系图:

◆ Synchronize()

void SceneObjectDetailsBinding::Synchronize ( )

从模型刷新所有未聚焦字段,形成双向绑定的 model-to-view 方向。

◆ Unbind()

void SceneObjectDetailsBinding::Unbind ( )

清除当前 Layout 中旧控件的回调;选择切换时由 Bind 自动调用。

这是这个函数的调用关系图:

类成员变量说明

◆ EditorLayout

ui::Layout& z8::SceneObjectDetailsBinding::EditorLayout
private

◆ Fields

std::vector<FieldBinding> z8::SceneObjectDetailsBinding::Fields
private

◆ Resources

ResourceManager& z8::SceneObjectDetailsBinding::Resources
private

◆ ResourcesChanged

std::function<void()> z8::SceneObjectDetailsBinding::ResourcesChanged
private

该类的文档由以下文件生成: