NAME: qinput PURPOSE: (one line) Prompt user for input using a popup widget. DESCRIPTION: This popup widget is meant to be used anywhere you might need input from a user. Functionally, it replaces "read,prompt='Input:',ans" that would be used in a older style input methodology. It can be used in widget and non-widget programs alike but is probably better used within widget programs. CATEGORY: Widgets CALLING SEQUENCE: result = qinput( [keywords] ) INPUTS: OPTIONAL INPUT PARAMETERS: KEYWORD INPUT PARAMETERS: DEFAULT = Default value for input. If not supplied the default has no value which is interpreted differently for each input type. GROUP_LEADER = Group leader id. If present, qinput runs as a modal application. Otherwise, it runs as a non-modal application. PROMPT = Character string to be displayed as a prompt. TITLE = Title for the widget. FLOATING = Set this keyword to accept a floating-point value. INTEGER = Set this keyword to accept an integer value. LONG = Set this keyword to accept a longword integer value. STRING = Set this keyword to accept a string value. OUTPUTS: result = the returned value. KEYWORD OUTPUT PARAMETERS: CANCELLED - Flag, if set means the input from user was cancelled and you should not process the returned value. COMMON BLOCKS: SIDE EFFECTS: Suspends other widget event generation. A user response is required. RESTRICTIONS: Note: the default value you supply needs to be consistent with the variable type you select if you want defaulting to work properly. For example, don't give it a string if you want float values or you may not get back what you intend. Funny behavior with IDL 8.1: this tool does not appear to work right if you do not supply the group_leader keyword information. PROCEDURE: MODIFICATION HISTORY: Written by Doug Loucks, Lowell Observatory, July 27, 1994. 2002/03/06, Marc W. Buie, fixed bug in handling keyword type switches, added DEFAULT keyword. 2004/04/12, Doug Loucks, Cleaned up event handling. Added code that uses pointer variables. Added a 'Cancel' button. 2006/11/25, Nathaniel J. Cunningham, added CANCELLED keyword so that cancelling can be differentiated from null string. 2008/10/30, MWB, slight rewrite of internals for robust state structure. Also, now exclusively returns a scalar regardless of type.