@node Part II Command Line Arguments
@chapter Command Line Arguments

To start the Form Designer simply type
@example
fdesign [-xformoptions] [-fdesignoptions] [files[.fd]]
@end example
@noindent
An initial window will be created and mapped. Depending on the window
manager, you may have the option to interactively select where to
place the window if the @code{-geometry} option is not given. Next the
program places the control panel on the screen. You can move this
panel, if required, to the place you want (you can also change the
default placement of the control panel via resources).

fdesign accepts all of the XForms command line options as well as the following
@table @code
@item -geometry @i{geom}
This option specifies the initial placement and size of the working
area.
@item -convert @i{fd-file-list}
Normally fdesign does its work interactively. This option causes the
fdesign simply read a list of fdesign output file (the @code{.fd}
files) and emit the corresponding C-routines and header files.
@item -version
Prints current version and quits.
@item -help
Prints a brief help message on command line options.
@item -altformat
Generates an alternative output format.
@item -border
Forces decorations on several windows so that you can move them
easily.
@item -unit @i{point|pixel|mm|cp|cmm}
Outputs object sizes in units other than pixels. cp and cmm stand for
centi-point (1/100 of a point) and centi-mm (1/100 of a milli-meter).
For typical displays, pixel and mm are too coarse and subject to
round-off errors.
@item -nocode
Suppresses the output of UI code. This can be handy if the UI code is
not generated interactively, but rather generated by the make process
using fdesign -convert.
@item -I @i{header}
Changes the output include file from @code{<forms.h>} to header.
Useful on systems where @file{forms.h} is renamed to something else or
you need application specific constants/defines for the UI to
function. In the later case, @code{header} may simply contain
@example
#include <forms.h>
#define mystuff 1
@end example
@item -main
Emits a main program with callback stubs. Can be useful for simple
programs.
@item -callback
Emits callback function template in a separate file.
@item -lax
Suppresses syntax checking on variable and callback function names.
@item -bw @i{borderwidth}
Changes default border width of the forms created.
@end table

Note that @code{-help}, @code{-version} and @code{-convert} do not
require a connection to an X server. If an output unit other than the
default (pixel) is selected, all object sizes in the output file will
be in the unit requested. This kind of UI has a fixed and device
resolution independent size (in theory at least) and can be useful for
drawing applications.

fdesign recognizes the following resources:
@multitable @columnfractions 0.3 0.2 0.5
@item @code{workingArea.geometry}
@tab string
@tab Geometry
@item @code{control.border}
@tab bool
@tab XForms borderwidth
@item @code{control.geometry}
@tab string (position only)
@tab Control window geometry
@item @code{attributes.geometry}
@tab string (position only)
@tab Attributes window Geometry
@item @code{attributes.background}
@tab string (e.g.@: gray80)
@tab Attributes window background
@item @code{align.geometry}
@tab string (position only)
@tab Align window geometry
@item @code{help.geometry}
@tab string (position only)
@tab Help window geometry
@item @code{convert}
@tab bool
@tab Convert
@item @code{unit}
@tab string
@tab Unit
@item @code{altformat}
@tab bool
@tab AltFormat
@item @code{xformHeader}
@tab string
@tab Header file name
@item @code{helpFontSize}
@tab int
@tab Help font size 
@item @code{main}
@tab bool
@tab Main
@end multitable

Note that resource specification of convert requires an X connection.
In addition, all XForms's resources specification can be used to
influence the appearance of various panels. The most useful ones are
the font sizes

@multitable @columnfractions 0.3 0.5
@item @code{*XForm.FontSize}
@tab all label font sizes
@item @code{XForm.PupFontSize}
@tab all pup font sizes
@end multitable
