/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/Tools/Libs/GuiFoundation/PropertyGrid/Implementation/PropertyMetaState.cpp
84 строки
2 KB
C-Core
Array usage cleanup (#1864)
11 мар 2026, 23:44
Не верифицирован
11 мар 2026, 23:44
f7cb730
Код
Авторство
О чём код?
#include <GuiFoundation/GuiFoundationPCH.h> #include <GuiFoundation/PropertyGrid/PropertyMetaState.h> #include <ToolsFoundation/Serialization/DocumentObjectConverter.h> // clang-format off EZ_IMPLEMENT_SINGLETON(ezPropertyMetaState); EZ_BEGIN_SUBSYSTEM_DECLARATION(GuiFoundation, PropertyMetaState) ON_CORESYSTEMS_STARTUP { EZ_DEFAULT_NEW(ezPropertyMetaState); } ON_CORESYSTEMS_SHUTDOWN { if (ezPropertyMetaState::GetSingleton()) { auto ptr = ezPropertyMetaState::GetSingleton(); EZ_DEFAULT_DELETE(ptr); } } EZ_END_SUBSYSTEM_DECLARATION; // clang-format on ezPropertyMetaState::ezPropertyMetaState() : m_SingletonRegistrar(this) { } void ezPropertyMetaState::GetTypePropertiesState(const ezDocumentObject* pObject, ezMap<ezString, ezPropertyUiState>& out_propertyStates) { ezPropertyMetaStateEvent eventData; eventData.m_pPropertyStates = &out_propertyStates; eventData.m_pObject = pObject; m_Events.Broadcast(eventData); } void ezPropertyMetaState::GetTypePropertiesState(const ezArrayPtr<ezPropertySelection>& items, ezMap<ezString, ezPropertyUiState>& out_propertyStates) { for (const auto& sel : items) { m_Temp.Clear(); GetTypePropertiesState(sel.m_pObject, m_Temp); for (auto it = m_Temp.GetIterator(); it.IsValid(); ++it) { auto& curState = out_propertyStates[it.Key()]; curState.m_Visibility = ezMath::Max(curState.m_Visibility, it.Value().m_Visibility); curState.m_sNewLabelText = it.Value().m_sNewLabelText; } } } void ezPropertyMetaState::GetContainerElementsState(const ezDocumentObject* pObject, const char* szProperty, ezHashTable<ezVariant, ezPropertyUiState>& out_propertyStates) { ezContainerElementMetaStateEvent eventData; eventData.m_pContainerElementStates = &out_propertyStates; eventData.m_pObject = pObject; eventData.m_szProperty = szProperty; m_ContainerEvents.Broadcast(eventData); } void ezPropertyMetaState::GetContainerElementsState(const ezArrayPtr<ezPropertySelection>& items, const char* szProperty, ezHashTable<ezVariant, ezPropertyUiState>& out_propertyStates) { for (const auto& sel : items) { m_Temp2.Clear(); GetContainerElementsState(sel.m_pObject, szProperty, m_Temp2); for (auto it = m_Temp2.GetIterator(); it.IsValid(); ++it) { auto& curState = out_propertyStates[it.Key()]; curState.m_Visibility = ezMath::Max(curState.m_Visibility, it.Value().m_Visibility); curState.m_sNewLabelText = it.Value().m_sNewLabelText; } } }