## 20.4.1 Functions Defined in Module `fl`

Module `fl` defines the following functions. For more information about what they do, see the description of the equivalent C function in the FORMS documentation:

`make_form`(type, width, height)
  Create a form with given type, width and height. This returns a form object, whose methods are described below.

`do_forms`()
  The standard FORMS main loop. Returns a Python object representing the FORMS object needing interaction, or the special value `FL.EVENT`.

`check_forms`()
  Check for FORMS events. Returns what `do_forms()` above returns, or `None` if there is no event that immediately needs interaction.

`set_event_call_back`(function)
  Set the event callback function.

`set_graphics_mode`(rgbmode, doublebuffering)
  Set the graphics modes.

`get_rgbmode`()
  Return the current rgb mode. This is the value of the C global variable `fl_rgbmode`.

`show_message`(str1, str2, str3)
  Show a dialog box with a three-line message and an OK button.

`show_question`(str1, str2, str3)
  Show a dialog box with a three-line message and YES and NO buttons. It returns `1` if the user pressed YES, `0` if NO.

`show_choice`(str1, str2, str3, but1[, but2[, but3]])
  Show a dialog box with a three-line message and up to three buttons. It returns the number of the button clicked by the user (`1`, `2` or `3`).

`show_input`(prompt, default)
  Show a dialog box with a one-line prompt message and text field in which the user can enter a string. The second argument is the default input string. It returns the string value as edited by the user.

`show_file_selector`(message, directory, pattern, default)
  Show a dialog box in which the user can select a file. It returns the absolute filename selected by the user, or `None` if the user presses Cancel.

`get_directory`()
`get_pattern`()
`get_filename`()
  These functions return the directory, pattern and filename (the tail part only) selected by the user in the last `show_file_selector()` call.

`qdevice`(dev)
`unqdevice`(dev)
`isqueued`(dev)
`qtest`()
`qread`()
`qreset`()
`qenter`(dev, val)
`get_mouse`()
`tie`(button, valuator1, valuator2)
  These functions are the FORMS interfaces to the corresponding GL functions. Use these if you want to handle some GL events yourself when using `fl.do_events()`. When a GL event is detected that FORMS cannot handle, `fl.do_forms()` returns the special value `FL.EVENT` and you should call `fl.qread()` to read the event from the queue. Don't use the equivalent GL functions!

`color`()
`mapcolor`()
`getmcolor`()
  See the description in the FORMS documentation of `fl_color()`, `fl_mapcolor()` and `fl_getmcolor()`.