freebsd-src/gnu/usr.bin/dialog
2000-01-08 09:34:45 +00:00
..
TESTS Have to install from ${.CURDIR}, not ${.OBJDIR}. 2000-01-08 09:34:45 +00:00
COPYING
dialog.1 Add documentation for tree functions. 1998-10-02 11:24:38 +00:00
dialog.c
Makefile Install contents of the dialog/TESTS directory to share/examples/dialog 2000-01-07 13:35:10 +00:00
README
README.lib

          dialog - Display dialog boxes in shell script (version 0.3)
          ===========================================================

This is a program that will enable you to present a variety of questions or
display messages using dialog boxes from a shell script. Currently, these
types of dialog boxes are implemented: yes/no box, menu box, input box,
message box, text box, info box, checklist box. The idea of writing this
program came from the fact that most questions asked in a shell script (and
many interactive programs as well) can be classified into these few types:


    1)  One that requires the user to answer either yes or no.

    2)  One that presents a number of options for the user to choose.

    3)  One that requires the user to input a string.

    4)  One that displays a message and optionally wait for a key press
        before continuing.

    5)  One that presents a list of options that can be turned on or off.


The program 'dialog' can, say for example, be called in a shell script to
present the first type of questions like this:


	if dialog --yesno <question text> <height> <width>
	then
	  ...
	fi


	e.g.  if dialog --yesno "Do you want to continue?" 7 51
	      then
	        echo "Continuing..."
	      else
	        echo "Aborting..."
	      fi


I've included a sample shell script for each type of boxes in the directory
samples. The program requires ncurses to compile. Running 'dialog' without
arguments will display the usage.



FEATURES
--------

	*  Friendly dialog box interface with buttons, etc.

	*  Auto wrap around of question text if it's too long to fit on
	   one line.

        *  "\n" can be inserted in question text to control line breaking
           explicitly. The real newline character '\n' can also be used.

        *  run-time configruation of color settings and other options using
           a configuration file.



WHAT'S NEW SINCE VERSION 0.21?
------------------------------

	*  some changes for faster screen update.

	*  much more flexible color settings. Can use all 16 colors
           (8 normal, 8 highlight) of the Linux console.

	*  added run-time configuration using configuration file.

	*  some minor bug fixes and cleanups for menubox, checklist and
	   textbox.

	*  added a man page.

	*  some changes for easier porting to other Unix systems (tested
           on Ultrix, SunOS and HPUX)



INSTALLATION
------------

	1.  cd ./src

	2.  Go to step 3 if your system has ncurses (e.g. Linux).
	    Edit Makefile and remove -DHAVE_NCURSES from DEFS. Also
            remove rc.c from SRCS and rc.o from OBJS. Change LIBS as
            appropriate (Usually, it should be '-lcurses -ltermcap').
            Go to step 6.

	3.  Edit Makefile and remove -DBROKEN_WSCRL from DEFS if you
            are using ncurses 1.8.3 or newer. Menu scrolling should
            be faster. DON'T REMOVE IT IF YOU ARE NOT USING AT LEAST
            VERSION 1.8.3 OF NCURSES.

        4.  Edit dialog.h and change USE_SHADOW to FALSE if you don't
            want shadowed dialog boxes. Also change USE_COLORS to
            FALSE if you don't want colors. Note that 'dialog' will
            check if the terminal supports colors, and will use mono
            settings if it doesn't, so USE_COLORS won't do any harm
            even if you have a mono display. Also note that USE_SHADOW
            implies USE_COLORS. These two options can be changed at
            run-time using the run-time configuration file (see below).

	5.  Edit colors.h to change default color definitions if you
            don't like the defaults. These are only compiled in defaults,
            you can change them at run-time using the run-time
            configuration file.

	6.  'make depend; make install' will compile and install the
            binaries in /usr/local/bin (change BINDIR in Makefile if
            you want to install elsewhere).

        7.  'make install.man' will install the man page to
            /usr/local/man (change MANDIR in Makefile if you want to
            install elsewhere).

        8.  You can then try the sample shell scripts in the samples
            directory (make sure the environment variable DIALOG is
            not set, the scripts use it to find the dialog binary, if
            it's not set, "../src/dialog" will be used).

	9.  Don't forget to mail me (mail address at end of this file)
            if you find any bugs, have some good color settings to
            contribute or just want to tell me that you like it, Don't
            mail me if you don't like it :-)



RUN-TIME CONFIGURATION
----------------------

	1.  Create a sample configuration file by typing:

                "dialog --create-rc <file>"

        2.  At start, 'dialog' determines the settings to use as follows:

              a)  if environment variable DIALOGRC is set, it's value
                  determines the name of the configuration file.

              b)  if the file in (a) can't be found, use the file
                  $HOME/.dialogrc as the configuration file.

              c)  if the file in (b) can't be found, use compiled in
                  defaults.

	3.  Edit the sample configuration file and copy it to some place
            that 'dialog' can find, as stated in step 2 above.




Comments and bug reports welcome.

- Savio Lam (lam836@cs.cuhk.hk)