xxxxxxxxxx
== Modified attributes ==
{| class="darktable"
! Attribute !! Used on...
|-
| type || Any clicks.
| *type1 || Any left click.
| type1 || Unmodified left click.
| shift-type2 || Shift+right click. (But not Alt+Shift+right click)
| shift-type* || Shift+any button click.
| alt-ctrl-shift-type* || Alt+Control+Shift+any button click.
| <s>ctrl-alt-shift-type*</s> || Invalid, as modifiers are in the wrong order.
|}
Some attribute may change value based on whether a particular combination of modifier keys is held down and/or a particular button is being clicked. Those attributes are typically called modified attributes, and are resolved by the SecureButton_GetModifiedAttribute function.
The "modified attribute" name takes the form of: modifier-name-button. The modifier is one of "alt-", "ctrl-", "shift-", or a combination of them in ''that'' order, and the button is a normally number from 1 through 5 or hyphen followed by an arbitrary string. Both the prefix and the suffix can be "*" to signify no regard to the modifier/button; "*attribute*" is thus equivalent to "attribute". Some examples are shown in the table to the right; both the modifier and the button must match the click details in order for the attribute value to be used.
A limited precedence order is defined by the Frame:[[API Frame GetAttribute|GetAttribute]] method.