@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 it to
simply read a list of fdesign output files (the @code{.fd} files) and
emit the corresponding C-routines and header files. This can be useful
e.g., in automatically compiling packages in Makefiles. Note that
the input @code{.fd} will only be read but never modified when this
option is used.
@item -migrate @i{fd-file-list}
When fdesign is invoked with the @code{-convert} option it just
creates new @code{.c} and @code{.h} files but leaves the
@code{.fd} files unmodified. In some situations, e.g., if you
also want to automatically upgrade @code{.fd} files created with
older versions of fdesign, you can instead use the @code{-migrate}
option which does all what the @code{-convert} option does but
also writes out a new version of the @code{.fd} file it just
read in. It also does a few extra checks, e.g., it will test
if XBM and XPM image files used for bitmaps and pixmaps actually
exist (if they don't the newly generated @code{.fd} file won't
reference them anymore, so carefully look out for error messages
and, if necessary, restore it from the generated @code{.fd.bak}
backup file).
@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 some types of windows so that you can move them
(only necessary with some window managers).
@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. Sometimes useful if the UI code is
not to be 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. Per
default, the header file name will be enclosed in angle brackets
('@code{<}' and '@code{>}') unless the name of the include file
specified is already enclosed in double quote ('@code{"}'). Useful on
systems where @file{forms.h} is renamed to something else or if you
need an application header file with e.g., definitions of
constants/defines for the UI that itself includes the @code{forms.h}
file.
@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 checking of variable and callback function names for being
aceptable C variable names
@item -bw @i{borderwidth}
Changes the 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
