When the user changes the state of a widget, gtkdialog checks if there is something to do with it. If the tampered widget have one or more actions, the program will execute them for the new situation to be handled.
Every widget can have multiply actions, a list of commands must be executed when the widget changed. Gtkdialog executes the axtions in the order they found in the dialog description program, so one can write a complet program as a series of instructions.
If the action of a widget is created with the simple '<action>COMMAND</action>' directive, gtkdialog will execute it in a subshell. That means it will start up '/bin/sh' to handle the operation. Here is how the subshell operation works:
Next the include file is checked. If the gtkdialog started with the '-i FILE' option gtkdialog will ask the subshell to include the FILE before the execution of command.
This strange method is needed for the action driven programs, where the subshell have to load the shell functions from the calling script.
The command closes the named window opened by the 'Launch:' command. The program remain active if there are more windows active.
The command disables the given widget if it is enabled. If the widget is disabled when the command is activated, nothing happens.
The disabled widgets are insensitive to user actions, their shapes are indicating they are temporary unavailable.
The command enables the given widget if it is diabled. If the widget is enabled nothing happens.
The command refresh the named widget. If the widget have one or more input actions, they will be called by 'gtkdialog'.
Some widgets can hold much data. (Currently only the edit widget capable to perform this action.)
The 'Save:' action will save the data found in the named widget to the filename found in '<output file>' attribute.
FIXME: This function is not working now, need to be fixed.