The xml file descibes the configuration variables that can be set.
It will be used to construct the user interface for editing those
variables.

This may not be completely upto date. (too true!! will update later... (sure he will.... :) )

There are two types of entries in the file.  

1) <group>'s. a group is a collection of subgroups and configuration
   items. Each group creates a node in a CTree widget.  It also
   represents a panel that the contained config items are placed 
   on for editing.

   A group looks like this:

   <group name="Services" branchonly="true"> 
        ... (config items)
   </group>

   The branchonly attribute ensures that a panel is *not* created,
   only creates a branch in the tree for categorization purposes.  If
   the attribute is not there then the default is false, ie create a
   panel

   Groups can have sub groups.  In theory, there is no limit on the
   number of levels than can be handled.

2)  <item>'s. Configuration items that represent fields in the gShield 
    configuration file (and UI items to help improve appearance and 
    usability).

    name     - The name of the config item, this *must* match the name 
               in the conf file.
    label    - A label to be placed beside the UI component.
    type     - See below
    filename - For textfiles. the name of the file to load and save.
    text     - Only for use when type equals note.  Text of the note 
               to display.
    width    - Only for use when equals note.  Sets the width of the label.

    Types can be:

    a) bool     - An on or off value
    b) string   - A string of some kind
    c) textfile - The name of a text file that can be edited.
    d) hr       - Adds a horizontal separator.
    e) note     - Add a note or informational item.

    Filenames for textfiles are relative to the Firewall_Root 
    configuration entry.

    textfile types always are there own panel and create an entry 
    in the tree so they can be selected.

How to extend gshieldconf

gshieldconf is rather easy to extend to take into account additions to
gShield.conf.  If a new configuration item is added to the conf file,
all that needs to be done is add a new <item/> to the controls.xml
file.  The name attribute of the item *must* match the name in the
gShield.conf file.  Add a tooltip if needed and create a nice label 
for it.  There are plenty of examples in controls.xml :).

