void GUIElementBase::_setDisabled(bool disabled) { bool isDisabled = (mFlags & GUIElem_Disabled) != 0; if (isDisabled == disabled) return; if (!disabled) { bool disabledSelf = (mFlags & GUIElem_DisabledSelf) != 0; if (!disabledSelf) { mFlags &= ~GUIElem_Disabled; for (auto& child : mChildren) child->_setDisabled(false); } } else { mFlags |= GUIElem_Disabled; for (auto& child : mChildren) child->_setDisabled(true); } if (_isVisible()) _markContentAsDirty(); }
veRenderableObject::veRenderableObject(veSceneManager *sm) : USE_VE_PTR_INIT , _sceneManager(sm) , _renderer(nullptr) , _isVisible(true) , _isDirtyBoundingBox(true) , _isLocalBoundingBox(true) { } veRenderableObject::~veRenderableObject() { } void veRenderableObject::update(veNode *node, veSceneManager *sm) { if (!_isVisible) return; } void veRenderableObject::render(veNode *node, veCamera *camera, unsigned int contextID) { if (!_isVisible) return; if (_renderer.valid() && _material.valid()) _renderer->render(node, this, camera, contextID); }
void GUIElementBase::_markMeshAsDirty() { if(!_isVisible()) return; if (mParentWidget != nullptr) mParentWidget->_markMeshDirty(this); }
void GUIElementBase::_markLayoutAsDirty() { if(!_isVisible()) return; if (mUpdateParent != nullptr) mUpdateParent->mFlags |= GUIElem_Dirty; else mFlags |= GUIElem_Dirty; }
void GUIElementBase::_registerChildElement(GUIElementBase* element) { assert(!element->_isDestroyed()); GUIElementBase* parentElement = element->_getParent(); if(parentElement != nullptr) { parentElement->_unregisterChildElement(element); } element->_setParent(this); mChildren.push_back(element); element->_setActive(_isActive()); element->_setVisible(_isVisible()); element->_setDisabled(_isDisabled()); _markLayoutAsDirty(); }
void GUILayout::insertElement(UINT32 idx, GUIElementBase* element) { if(idx > (UINT32)mChildren.size()) BS_EXCEPT(InvalidParametersException, "Index out of range: " + toString(idx) + ". Valid range: 0 .. " + toString((UINT32)mChildren.size())); if (element->_isDestroyed()) return; GUIElementBase* parentElement = element->_getParent(); if(parentElement != nullptr) { parentElement->_unregisterChildElement(element); } element->_setParent(this); mChildren.insert(mChildren.begin() + idx, element); element->_setActive(_isActive()); element->_setVisible(_isVisible()); element->_setDisabled(_isDisabled()); _markLayoutAsDirty(); }
bool PetAI::IsVisible(Unit* pl) const { return _isVisible(pl); }