Adobe 65007312 Programming Guide - Page 110
Layout examples, Building a basic dialog
UPC - 883919154398
View all Adobe 65007312 manuals
Add to My Manuals
Save this manual to your list of manuals |
Page 110 highlights
CHAPTER 5: Creating a User Interface for Your Plug-in Determining layout 110 Layout examples The following examples show how to build a basic dialog with an initial layout, how to make labels line up properly, and how to set the dialog up to take advantage of automatic layout on resize. Building a basic dialog The following code creates a basic dialog within a function context. (See "Using function contexts for error handling" on page 18.) X It creates a properties table with a plug-in defined property, url, which contains a URL. X It defines the contents of the dialog box using an LrView factory: a label, and an edit field that shows the property value. X It invokes a modal dialog with LrDialogs.presentModalDialog(), passing in the defined view. Based on the result of the invocation, it opens the web page using LrHttp. This code demonstrates a very simple layout, where the topmost and only container is a row view, which uses default values to place its two children, a label and an edit field. local LrBinding = import "LrBinding" local LrDialogs = import "LrDialogs" local LrFunctionContext = import "LrFunctionContext" local LrHttp = import "LrHttp" local LrView = import "LrView" LrFunctionContext.callWithContext( 'dialogExample', function( context ) local f = LrView.osFactory() --obtain a view factory local properties = LrBinding.makePropertyTable( context ) -- make a table properties.url = "http://www.adobe.com" -- initialize setting local contents = f:row { -- create UI elements spacing = f:label_spacing(), bind_to_object = properties, -- default bound table is the one we made f:static_text { title = "URL", alignment = 'right', }, f:edit_field { fill_horizonal = 1, width_in_chars = 20, value = LrView.bind( 'url' ),-- edit field shows settings value }, } local result = LrDialogs.presentModalDialog( -- invoke a dialog box { title = "Go to a URL", contents = contents, -- with the UI elements