[[BackLinksMenu]]

[[TicketQuery(summary=FRAME_PROPERTY_LOCKING_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]]



= Analysis =
== Overview ==
Frame property locking provides the ability a property to be protected from changing. Frame property locking should be presented to the user as a checkbox in the Frame hud. When the checkbox is checked for a property, it's value will not be changeable until it's checkbox is unchecked. 
== Task requirements ==
Provide a prototype of frame property locking.
Locking should be available for frame:
 * content
 * insets
 * bounds
 * border style
 * background style
 * shadow style
Providing locking for these is enough for this revision. In later revisions, they may be split into sub-elements (border style - border thickness, border color, etc).
== Task result ==
The result of this task must be code.
== Implementation idea ==
Create a value property
 * contentLock
 * insetsLock
 * boundsLock
 * borderLock
 * backgroundLock
 * shadowLock
at the Frame class.

== Related ==
[wiki:FRAME_TEMPLATES_R0]

== How to demo ==
 * Create a frame.
 * Lock the border.
 * Change border width.
 * Assert that border width is the same.

= Design =
 * Add following properties in the Frame class
  * !RwProp<Boolean> contentLock() - value property - It will provide if content could be changed. If content is locked, it could not be changed.
  * !RwProp<Boolean> borderLock() - value property - It will provide if border could be changed. If border is locked, it could not be changed.
  * !RwProp<Boolean> backgroundLock() - value property - It will provide if background could be changed. If background is locked, it could not be changed.
  * !RwProp<Boolean> shadowLock() - value property - It will provide if shadow could be changed. If shadow is locked, it could not be changed.
  * !RwProp<Boolean> paddingInsetsLock() - value property - It will provide if padding could be changed. If padding is locked, it could not be changed.
  * !RwProp<Boolean> marginInsetsLock() - value property - It will provide if margin could be changed. If margin is locked, it could not be changed.

= Implementation =
^(Implementation results should be described and linked here (from the wiki or the repository))^

= Testing =

= Comments =
^(Write comments for this or later revisions here.)