# GUI Functions

## Functions

- `ui.getfile()` ... GUI for selecting an existing file
- `ui.getdir()` ... GUI for selecting a directory
- `ui.get_screensize()` ... getting width and height of screen
- `ui.listbox()` ... GUI for item selection
- `ui.progressbar()` ... Show progressbar, during longer loops
- `ui.savefile()` ... GUI for saving a file

## Details

Miscellaneous user interface utilities for

> - getting the screen size
> - selecting files or directories. If nothing or a non-existing file/direcoty is selected, the return is “0”. Otherwise the file/directory is returned.
> - Selection from a list.
> - waitbar
> - listbox

`ui.``getfile`(FilterSpec='*', DialogTitle='Select File: ', DefaultName='')

  Selecting an existing file.

  Parameters: | FilterSpec : query-string File filters DialogTitle : string Window title DefaultName : string Can be a directory AND filename
  Returns: | filename : string selected existing file, or empty string if nothing is selected pathname: string selected path, or empty string if nothing is selected

  Examples

      >>> (myFile, myPath) = thLib.ui.getfile('*.py', 'Testing file-selection', 'c:\temp\test.py')

`ui.``getdir`(DialogTitle='Select Directory', DefaultName='.')

  Select a directory

  Parameters: | DialogTitle : string Window title DefaultName : string Can be a directory AND filename
  Returns: | directory : string Selected directory, or empty string if nothing is selected.

  Examples

      >>> myDir = thLib.ui.getdir('c:\temp', 'Pick your directory')

`ui.``get_screensize`()

  Get the height and width of the screen.

  Parameters: | None
  Returns: | width : int width of the current screen height: int height of the current screen

  Examples

      >>> (width, height) = thLib.ui.get_screensize()

`ui.``listbox`(items)

  GUI for a listbox selection

  Parameters: | items : list Items for selection. frame : tkinter Frame If provided, the list is put in the given frame. Otherwise, a new frame is created.
  Returns: | selected : string Selected item. If no selection is made, and empty string (‘’) is returned.

  Examples

      >>> selData = thLib.ui.listbox(['Peter', 'Paul', 'Mary'])

`ui.``progressbar`(it, prefix='', size=60)

  Shows a progress-bar on the commandline. This has the advantage that you don’t need to bother with windows managers. Nifty coding!

  Parameters: | it : integer array index variable prefix : string Text preceding the progress-bar size : integer Length of progress-bar

  Examples

      >>> import time
      >>> for ii in progressbar(range(50), 'Computing ', 25):
      >>>    #print(ii)
      >>>    time.sleep(0.05)

`ui.``savefile`(FilterSpec='*', DialogTitle='Save File: ', DefaultName='')

  Selecting an existing or new file:

  Parameters: | FilterSpec : string File filters. DialogTitle : string Window title. DefaultName : string Can be a directory AND filename.
  Returns: | filename : string Selected file. pathname : string Selecte path.

  Examples

      >>> (myFile, myPath) = thLib.ui.savefile('*.py', 'Testing file-selection', 'c:\temp\test.py')