When the user drags from one of the controls which accept a mouse drag, the control's script receives an export event. It is required to provide an export handler: the result that export will return is the quantity that will be carried by the drag-and-drop, and that will be passed to the drop handler if dropping occurs in a control of a custom dialog of Smile.
You handle export with a handler such as:
on export the_object
return some_quantity
end export
the_object contains a reference to the control which is exporting.
some_quantity is what the control will export.
The drag-and-drop will be effective only if the quantity returned by export belongs to a kind declared in the «class flav» list. For instance, the following script would handle dragging some text from the List Box: it will only if the «class flav» property of the List Box contains "TEXT".
on export the_list_box
set the_list to contained data of the_list_box
set the_index to item 1 of (get selection of the_list_box)
set the_string to item the_index of the_list
return the_string
end export
By default, Smile keeps silent the execution errors that occur in an export handler. If you want to be notified of execution errors that might occur in a export handler, encapsulate the body of your handler within a try [...] on error [...] end try wrapper and handle the error.
|