本文整理汇总了C++中PropertyNameList类的典型用法代码示例。如果您正苦于以下问题:C++ PropertyNameList类的具体用法?C++ PropertyNameList怎么用?C++ PropertyNameList使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了PropertyNameList类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DirtyProperties
// Sets a list of properties as dirty.
void ElementStyle::DirtyProperties(const PropertyNameList& properties)
{
if (properties.empty())
return;
PropertyNameList inherited_properties;
for (PropertyNameList::const_iterator i = properties.begin(); i != properties.end(); ++i)
{
// If this property is an inherited property, then push it into the list to be passed onto our children.
const PropertyDefinition* property = StyleSheetSpecification::GetProperty(*i);
if (property != NULL &&
property->IsInherited())
inherited_properties.insert(*i);
}
// Pass the list of those properties that are inherited onto our children.
if (!inherited_properties.empty())
{
for (int i = 0; i < element->GetNumChildren(true); i++)
element->GetChild(i)->GetStyle()->DirtyInheritedProperties(inherited_properties);
}
// And send the event.
element->OnPropertyChange(properties);
}
示例2: DirtyProperty
// Sets a single property as dirty.
void ElementStyle::DirtyProperty(const String& property)
{
PropertyNameList properties;
properties.insert(String(property));
DirtyProperties(properties);
}
示例3: GetDefinedProperties
// Returns the list of properties this element definition defines for an element with the given set of pseudo-classes.
void ElementDefinition::GetDefinedProperties(PropertyNameList& property_names, const PseudoClassList& pseudo_classes) const
{
for (PropertyMap::const_iterator i = properties.GetProperties().begin(); i != properties.GetProperties().end(); ++i)
property_names.insert((*i).first);
for (PseudoClassPropertyDictionary::const_iterator i = pseudo_class_properties.begin(); i != pseudo_class_properties.end(); ++i)
{
// If this property is already in the default dictionary, don't bother checking for it here.
if (property_names.find((*i).first) != property_names.end())
continue;
const PseudoClassPropertyList& property_list = (*i).second;
// Search through all the pseudo-class combinations that have a definition for this property; if the calling
// element matches at least one of them, then add it to the list.
bool property_defined = false;
for (size_t j = 0; j < property_list.size(); ++j)
{
if (IsPseudoClassRuleApplicable(property_list[j].first, pseudo_classes))
{
property_defined = true;
break;
}
}
if (property_defined)
property_names.insert((*i).first);
}
}
示例4: DirtyEmProperties
// Dirties em-relative properties.
void ElementStyle::DirtyEmProperties()
{
PropertyNameList properties;
StyleSheetSpecification::GetRegisteredProperties(properties);
// Check if any of these are currently em-relative. If so, dirty them.
PropertyNameList em_properties;
for (PropertyNameList::iterator list_iterator = properties.begin(); list_iterator != properties.end(); ++list_iterator)
{
// Skip font-size; this is relative to our parent's em, not ours.
if (*list_iterator == FONT_SIZE)
continue;
// Get this element from this element. If this is em-relative, then add it to the list to
// dirty.
if (element->GetProperty(*list_iterator)->unit == Property::EM)
em_properties.insert(*list_iterator);
}
if (!em_properties.empty())
DirtyProperties(em_properties);
// Now dirty all of our descendant's font-size properties that are relative to ems.
int num_children = element->GetNumChildren(true);
for (int i = 0; i < num_children; ++i)
element->GetChild(i)->GetStyle()->DirtyInheritedEmProperties();
}
示例5: isSkippedNode
bool isSkippedNode(const ModelNode &node)
{
static const PropertyNameList skipList({"QtQuick.XmlRole", "Qt.XmlRole", "QtQuick.ListElement", "Qt.ListElement"});
if (skipList.contains(node.type()))
return true;
return false;
}
示例6: OnPropertyChange
void ElementImage::OnPropertyChange(const PropertyNameList& changed_properties)
{
Element::OnPropertyChange(changed_properties);
if (changed_properties.find(BACKGROUND_COLOR) != changed_properties.end() ||
changed_properties.find(OPACITY) != changed_properties.end()) {
GenerateGeometry();
}
}
示例7: DirtyProperties
// Sets a list of properties as dirty.
void ElementStyle::DirtyProperties(const PropertyNameList& properties, bool clear_em_properties)
{
if (properties.empty())
return;
bool all_inherited_dirty =
StyleSheetSpecification::GetRegisteredProperties() == properties ||
StyleSheetSpecification::GetRegisteredInheritedProperties() == properties;
if (all_inherited_dirty)
{
const PropertyNameList &all_inherited_properties = StyleSheetSpecification::GetRegisteredInheritedProperties();
for (int i = 0; i < element->GetNumChildren(true); i++)
element->GetChild(i)->GetStyle()->DirtyInheritedProperties(all_inherited_properties);
// Clear all cached properties.
cache->Clear();
}
else
{
PropertyNameList inherited_properties;
for (PropertyNameList::const_iterator i = properties.begin(); i != properties.end(); ++i)
{
// If this property is an inherited property, then push it into the list to be passed onto our children.
const PropertyDefinition* property = StyleSheetSpecification::GetProperty(*i);
if (property != NULL &&
property->IsInherited())
inherited_properties.insert(*i);
}
// Pass the list of those properties that are inherited onto our children.
if (!inherited_properties.empty())
{
for (int i = 0; i < element->GetNumChildren(true); i++)
element->GetChild(i)->GetStyle()->DirtyInheritedProperties(inherited_properties);
}
// Clear cached properties.
cache->Clear();
}
// clear the list of EM-properties, we will refill it in DirtyEmProperties
if (clear_em_properties && em_properties != NULL)
{
delete em_properties;
em_properties = NULL;
}
// And send the event.
element->OnPropertyChange(properties);
}
示例8: OnAttributeChange
void ElementHandle::OnAttributeChange(const PropertyNameList& changed_attributes)
{
Element::OnAttributeChange(changed_attributes);
// Reset initialised state if the move or size targets have changed.
if (changed_attributes.find("move_target") != changed_attributes.end() ||
changed_attributes.find("size_target") != changed_attributes.end())
{
initialised = false;
move_target = NULL;
size_target = NULL;
}
}
示例9: OnPropertyChange
// Repositions the document if necessary.
void ElementDocument::OnPropertyChange(const PropertyNameList& changed_properties)
{
Element::OnPropertyChange(changed_properties);
// If the document's font-size has been changed, we need to dirty all rem properties.
if (changed_properties.find(FONT_SIZE) != changed_properties.end())
GetStyle()->DirtyRemProperties();
if (changed_properties.find(TOP) != changed_properties.end() ||
changed_properties.find(RIGHT) != changed_properties.end() ||
changed_properties.find(BOTTOM) != changed_properties.end() ||
changed_properties.find(LEFT) != changed_properties.end())
UpdatePosition();
}
示例10: OnPropertyChange
// called when element properites are changed
void ElementImage::OnPropertyChange(const PropertyNameList& changed_properties)
{
Rocket::Core::Element::OnPropertyChange(changed_properties);
// Check if color property has been changed.
if (changed_properties.find(COLOR) != changed_properties.end() )
{
geometry_dirty = true;
}
// Check if opacity has been changed
if (changed_properties.find(OPACITY) != changed_properties.end() )
{
geometry_dirty = true;
}
}
示例11: acceptedModelNodeChildren
static QList<ModelNode> acceptedModelNodeChildren(const ModelNode &parentNode)
{
QList<ModelNode> children;
PropertyNameList properties;
if (parentNode.metaInfo().hasDefaultProperty())
properties.append(parentNode.metaInfo().defaultPropertyName());
#ifndef DISABLE_VISIBLE_PROPERTIES
properties.append(visibleProperties(parentNode));
#endif
foreach (const PropertyName &propertyName, properties) {
AbstractProperty property(parentNode.property(propertyName));
if (property.isNodeAbstractProperty())
children.append(property.toNodeAbstractProperty().directSubNodes());
}
示例12: OnPropertyChange
// Repositions the document if necessary.
void ElementDocument::OnPropertyChange(const PropertyNameList& changed_properties)
{
Element::OnPropertyChange(changed_properties);
if (changed_properties.find(TOP) != changed_properties.end() ||
changed_properties.find(RIGHT) != changed_properties.end() ||
changed_properties.find(BOTTOM) != changed_properties.end() ||
changed_properties.find(LEFT) != changed_properties.end())
UpdatePosition();
}
示例13: DirtyInheritedProperties
// Sets a list of our potentially inherited properties as dirtied by an ancestor.
void ElementStyle::DirtyInheritedProperties(const PropertyNameList& properties)
{
PropertyNameList inherited_properties;
for (PropertyNameList::const_iterator i = properties.begin(); i != properties.end(); ++i)
{
if (GetLocalProperty((*i)) == NULL)
inherited_properties.insert(*i);
}
if (inherited_properties.empty())
return;
// Pass the list of those properties that this element doesn't override onto our children.
for (int i = 0; i < element->GetNumChildren(true); i++)
element->GetChild(i)->GetStyle()->DirtyInheritedProperties(inherited_properties);
element->OnPropertyChange(properties);
}
示例14: detectVerticalCycle
bool detectVerticalCycle(const ModelNode &node, QList<ModelNode> knownNodeList)
{
if (!node.isValid())
return false;
if (knownNodeList.contains(node))
return true;
knownNodeList.append(node);
static PropertyNameList validAnchorLines(PropertyNameList() << "top" << "bottom" << "verticalCenter" << "baseline");
static PropertyNameList anchorNames(PropertyNameList() << "anchors.top" << "anchors.bottom" << "anchors.verticalCenter" << "anchors.baseline");
foreach (const PropertyName &anchorName, anchorNames) {
if (node.hasBindingProperty(anchorName)) {
AbstractProperty targetProperty = node.bindingProperty(anchorName).resolveToProperty();
if (targetProperty.isValid()) {
if (!validAnchorLines.contains(targetProperty.name()))
return true;
if (detectVerticalCycle(targetProperty.parentModelNode(), knownNodeList))
return true;
}
}
}
static PropertyNameList anchorShortcutNames(PropertyNameList() << "anchors.fill" << "anchors.centerIn");
foreach (const PropertyName &anchorName, anchorShortcutNames) {
if (node.hasBindingProperty(anchorName)) {
ModelNode targetNode = node.bindingProperty(anchorName).resolveToModelNode();
if (targetNode.isValid() && detectVerticalCycle(targetNode, knownNodeList))
return true;
}
}
return false;
}
示例15: DirtyInheritedProperties
// Sets a list of our potentially inherited properties as dirtied by an ancestor.
void ElementStyle::DirtyInheritedProperties(const PropertyNameList& properties)
{
bool clear_em_properties = em_properties != NULL;
PropertyNameList inherited_properties;
for (PropertyNameList::const_iterator i = properties.begin(); i != properties.end(); ++i)
{
const Property *property = GetLocalProperty((*i));
if (property == NULL)
{
inherited_properties.insert(*i);
if (!clear_em_properties && em_properties != NULL && em_properties->find((*i)) != em_properties->end()) {
clear_em_properties = true;
}
}
}
if (inherited_properties.empty())
return;
// clear the list of EM-properties, we will refill it in DirtyEmProperties
if (clear_em_properties && em_properties != NULL)
{
delete em_properties;
em_properties = NULL;
}
// Clear cached inherited properties.
cache->ClearInherited();
// Pass the list of those properties that this element doesn't override onto our children.
for (int i = 0; i < element->GetNumChildren(true); i++)
element->GetChild(i)->GetStyle()->DirtyInheritedProperties(inherited_properties);
element->OnPropertyChange(properties);
}