AttributeLockControl

class AttributeLockControl : public HPS::Control

The HPS::AttributeLockControl class provides support for attribute locking, which allows temporarily override of an attribute setting for a segment and its descendants. This control is used to set and unset attribute locks at the segment level. For more information, see Core Graphics Programming Guide, section 1.2.4 - subsection “Attribute controls”. This table lists default values for the various segment attributes accessible from HPS::AttributeLockControl.

Public Functions

AttributeLockControl(AttributeLockControl &&in_that)

The move constructor creates a AttributeLockKit by transferring the underlying impl of the rvalue reference to this AttributeLockKit thereby avoiding a copy and allocation.

Parameters:in_that – An rvalue reference to a AttributeLockKit to take the impl from.
AttributeLockControl(AttributeLockControl const &in_that)

Initializes a control tied to the same object as in_that.

explicit AttributeLockControl(SegmentKey &in_seg)

Initializes a control tied to the segment in_seg.

inline virtual HPS::Type ObjectType() const

This function returns the type the object, as declared (if the object is derived, this does not give the true type of the derived object).

Returns:The declared type of the object in question, which may differ from the true, underlying type.
AttributeLockControl &operator=(AttributeLockControl &&in_that)

The move assignment operator transfers the underlying impl of the rvalue reference to this AttributeLockControl thereby avoiding a copy.

Parameters:in_that – An rvalue reference to a AttributeLockControl to take the impl from.
Returns:A reference to this AttributeLockControl.
AttributeLockControl &operator=(AttributeLockControl const &in_that)

Share the underlying smart-pointer of the AttributeLockControl source.

Parameters:in_that – The AttributeLockControl source of the assignment.
Returns:A reference to this AttributeLockControl.
AttributeLockControl &SetLock(AttributeLock::Type in_type, bool in_state = true)

Applies an attribute lock that prevents attributes of the chosen type from being modified in child segments.

See also

Attribute lock default value

Parameters:
  • in_type – The type of attribute to lock or unlock.
  • in_state – Whether the attribute should be locked.
Returns:

A reference to this object.

AttributeLockControl &SetLock(AttributeLockTypeArray const &in_types, BoolArray const &in_states)

Applies attribute locks that prevents attributes of the chosen types from being modified in child segments.

Parameters:
  • in_types – An array of attribute types that should be locked or unlocked.
  • in_states – An array of bools with each one indicating whether the corresponding type in in_types should be locked.
Returns:

A reference to this object.

AttributeLockControl &SetSubsegmentLockOverride(AttributeLock::Type in_type, bool in_state = true)

Normally, if a segment applies an attribute lock it will defeat an existing lock set in a parent segment. This method designates a particular lock as a “super lock” that cannot be overridden by subsegments.

Parameters:
  • in_type – The type of attribute lock that should be ignored in subsegments.
  • in_state – Whether the attribute lock should override locks in subsegments.
Returns:

A reference to this object.

AttributeLockControl &SetSubsegmentLockOverride(AttributeLockTypeArray const &in_types, BoolArray const &in_states)

Normally, if a segment applies an attribute lock it will defeat an existing lock set in a parent segment. This method designates a collection of locks as a “super locks” that cannot be overridden by subsegments.

Parameters:
  • in_type – Ann array of types of attribute locks that should be ignored in subsegments.
  • in_state – An array of bools with each one indicating whether the corresponding attribute lock in in_types should override locks in subsegments.
Returns:

A reference to this object.

bool ShowLock(AttributeLock::Type in_type, bool &out_state) const

Shows the state of a particular attribute lock.

Parameters:
  • in_type – The type of attribute lock to be queried.
  • out_state – Whether the attribute is locked.
Returns:

true if the setting is valid, false otherwise.

bool ShowLock(AttributeLockTypeArray &out_types, BoolArray &out_states) const

Shows the state of all attribute locks.

Parameters:
  • out_types – An array of types that have an attribute lock setting.
  • out_states – An array of bools with each indicating whether the corresponding entry in in_types is locked.
Returns:

true if the setting is valid, false otherwise.

bool ShowSubsegmentLockOverride(AttributeLock::Type in_type, bool &out_state) const

Shows the state of a particular subsegment lock override.

Parameters:
  • in_type – The type of attribute lock to be queried.
  • out_state – Whether the attribute lock will override locks in subsegments.
Returns:

true if the setting is valid, false otherwise.

bool ShowSubsegmentLockOverride(AttributeLockTypeArray &out_types, BoolArray &out_states) const

Shows the state of all subsegment lock overrides.

Parameters:
  • out_types – An array of types that have a subsegment lock override setting.
  • out_states – An array of bools with each indicating whether the corresponding entry in in_types is will be ignored in subsegments.
Returns:

true if the setting is valid, false otherwise.

AttributeLockControl &UnsetEverything()

Removes all settings from this object. If the control is attached to a WindowKey this function restores the default settings of this control as specified by AttributeLockKit::GetDefault().

Returns:A reference to this object.
AttributeLockControl &UnsetLock(AttributeLock::Type in_type = AttributeLock::Type::Everything)

Removes an attribute lock setting. If the control is attached to a WindowKey this function restores the default value of this setting as specified by AttributeLockKit::GetDefault().

Returns:A reference to this object.
AttributeLockControl &UnsetLock(AttributeLockTypeArray const &in_types)

Removes a collection of attribute lock settings. If the control is attached to a WindowKey this function restores the default value of this setting as specified by AttributeLockKit::GetDefault().

Returns:A reference to this object.
AttributeLockControl &UnsetSubsegmentLockOverride(AttributeLock::Type in_type = AttributeLock::Type::Everything)

Removes a subsegment lock override setting. If the control is attached to a WindowKey this function restores the default value of this setting as specified by AttributeLockKit::GetDefault().

Returns:A reference to this object.
AttributeLockControl &UnsetSubsegmentLockOverride(AttributeLockTypeArray const &in_types)

Removes a collection of subsegment lock override settings. If the control is attached to a WindowKey this function restores the default value of this setting as specified by AttributeLockKit::GetDefault().

Returns:A reference to this object.
~AttributeLockControl()

Releases a reference to the database object this control is tied to.

Public Static Attributes

static const HPS::Type staticType = HPS::Type::AttributeLockControl