Adobe 65007312 Programming Guide - Page 178

Run the plug-in, becomes the result of the binding, and thus

Page 178 highlights

CHAPTER 9: Getting Started: A Tutorial Example Binding to multiple keys 178 f:edit_field { -- add multi-key value binding later value = LrView.bind { keys = { -- specify the two bound keys { key = "sliderOne" -- in default table }, { key = "sliderTwo", bind_to_object = tableTwo - specify a different table } }, -- add operation }), 9. You must also supply the function that operates on the multiple key values to supply a single result for the binding. In this case, we will simply add the two numeric values, and return the result: -- add operation operation = function( binding, values, fromTable ) return values.sliderTwo + values.sliderOne end }, Notice how you use the values argument passed to this function to access the value of each bound key. Whenever one of the key values changes, this function is automatically invoked; the return value becomes the result of the binding, and thus the value of the edit box. 10. Use LrDialogs.presentModalDialog() to display the new custom dialog, and call it when the script is run: local result = LrDialogs.presentModalDialog { title = "Custom Dialog Multiple Bind", contents = c, -- the view hierarchy we defined } MyHWLibraryItem.showCustomDialogWithMultipleBind() 11. Save your changes to the file. Run the plug-in Use these steps to run the plug-in and text the dialog: 1. Reload the plug-in, as described in step 1 on page 172. 2. Choose Library > Plug-in Extras > Hello World Custom Dialog to show the custom modal dialog created by the LibraryMenuItem.lua script:

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204

C
HAPTER
9: Getting Started: A Tutorial Example
Binding to multiple keys
178
f:edit_field {
-- add multi-key value binding later
value = LrView.bind {
keys = {
-- specify the two bound keys
{
key = "sliderOne" -- in default table
},
{
key = "sliderTwo",
bind_to_object = tableTwo
- specify a different table
}
},
-- add operation
}),
9.
You must also supply the function that operates on the multiple key values to supply a single result for
the binding. In this case, we will simply add the two numeric values, and return the result:
-- add operation
operation = function( binding,
values
, fromTable )
return
values.sliderTwo
+
values.sliderOne
end
},
Notice how you use the
values
argument passed to this function to access the value of each bound
key. Whenever one of the key values changes, this function is automatically invoked; the return value
becomes the result of the binding, and thus the
value
of the edit box.
10. Use
LrDialogs.presentModalDialog()
to display the new custom dialog, and call it when the script
is run:
local result = LrDialogs.presentModalDialog {
title = "Custom Dialog Multiple Bind",
contents = c, -- the view hierarchy we defined
}
MyHWLibraryItem.showCustomDialogWithMultipleBind()
11.
Save your changes to the file.
Run the plug-in
Use these steps to run the plug-in and text the dialog:
1.
Reload the plug-in, as described in step
1
on page
172
.
2.
Choose
Library > Plug-in Extras > Hello World Custom Dialog
to show the custom modal dialog
created by the
LibraryMenuItem.lua
script: