Softimage SDK Programmer's Guide > Customizing with the SDK > Building and Deploying Customizations >

# Interacting with the User

There are many types of interaction that you may need to implement in your tool or customization. For example, you may want to simply give the user some information about the status of the action (typically using a message box dialog or a progress bar). Conversely, you may need the user to supply some information, such as the name of a file to use as input or output (typically using a browser dialog).

These types of services can be handled either by tools provided by the implementation language (for example, the MsgBox function in VBScript) or by some of the UI toolkits Softimage provides (for example, the XSIUIToolkit.MsgBox or UIToolkit::MsgBox and XSIUIToolkit.ProgressBar or UIToolkit::GetProgressBar features). However, you may need a tool that's more flexible and able to handle complex solutions.

Custom Dialog Tools

Often you need something more comprehensive; something highly malleable but quick and easy to use. For example, you may need to ask the user to set some parameters that have very different data types: integers, doubles, colors, strings, etc. Or you may want to trigger some fancy-schmancy action behind the scenes when the user clicks a button or indicates an option. These types of services are best handled by a custom dialog box called a property page (or PPG) which provides you with a large range of tools that are easy to configure and implement.

Here are the types of actions you can take using the Softimage UI-building tools:

Action | Tool Name | Description | For details, see...
--- | --- | --- | ---
Ask users to provide the name and location of the file to save. | PPG | PPG using a PPGLayout with the FileBrowser widget | File Browser Widget | FileBrowser | XSIUIToolkit.FileBrowser with the ShowSave method | FileBrowser
Ask users to provide the name and location of the file to open. | FileBrowser | PPG using a PPGLayout with the FileBrowser widget | File Browser Widget | FileBrowser | XSIUIToolkit.FileBrowser with the ShowOpen method | FileBrowser
Inform users how long to wait for the process to finish and how long they've been waiting. | ProgressBar | XSIUIToolkit.ProgressBar Note You could also use a PPG to simulate this behavior, but why reinvent the wheel? | ProgressBar
Send information or messages to users without feedback. | MsgBox | XSIUIToolkit.MsgBox Note You could also use a PPG, but MsgBox is simpler to implement for single messages. | MsgBox
Ask users to click OK, No, Cancel, Abort, Retry or Ignore in response to a question or statement. | MsgBox | XSIUIToolkit.MsgBox Note You could also use a PPG, but MsgBox is simpler to implement for single messages. | MsgBox
Ask users to set data on parameters, select an item from a drop-down or list box or choose one option from a set. Note A rich toolset is available in Softimage to easily specify very complex or specific types of controls, such as an FCurve, a Color Selector, a Folder Picker, etc. | PPG/CustomProperty | Parameter data can be saved in a CustomProperty (parameter set) object. It can then be persisted in the scene even after the dialog box is no longer visible. The PPG provides the mechanism for viewing the CustomProperty data, as well as providing extra functionality, such as command buttons, file- and folder-pickers, etc. You set up the format and layout of the PPG using the PPGLayout object. | Building Dialogs
Allow users to perform one or more actions in relation to the data displayed by clicking a button. Note If you are providing only command buttons (without data) on your property page, you may want to consider simply creating a custom toolbar to host your command buttons instead. For more information, see CreateToolbar. | PPG | PPG using a PPGLayout with the CommandButton type of control (siControlButton). | Command Button
Display a complex set of data, such as a 2-dimensional array. | PPG/GridData | GridData can hold 2-dimensional sets of data, which provides an excellent workaround to the problem of how to work with 2-dimensional arrays in JScript. PPG using a PPGLayout with the GridData type of control (siControlGrid). | GridData Widget
Use a multi-page layout with tab control to display extensive data. | PPG | PPG using a PPGLayout with the pages delimited using the PPGLayout.AddTab or PPGLayout::AddTab method. | Using Multiple Pages (Tabs)
Display your company's logo on your custom dialog box. | PPG | PPG using a PPGLayout with the Bitmap type of control (siControlBitmap). | Bitmap Widget
Set up a Scintilla-based text editor to utilize C++ style formatting, auto-complete, folding, etc. inside Softimage | PPG | PPG using a PPGLayout with the Text Edirot Widget type of control (siControlTextEditor). | Text Editor Widget

Note

Only tools available in Softimage are presented in this chapter; for standard tools deployed by your specific implementation language, see your language supplier's documentation.