/*!
\page uic.html
\title User Interface Compiler (uic)
\omit KEEP THIS FILE SYNCHRONIZED WITH uic.1 \endomit
This page documents the \e{User Interface Compiler} for the Qt GUI
toolkit. The \e uic reads a user interface definition
(.ui) file in XML as generated by \link designer-manual.book Qt
Designer\endlink and creates corresponding C++ header or source files.
It can also generate an image file to embed raw image data in C++
source code.
\section1 Options
\section2 File Generation Options
Generate declaration:
\code
uic [options]
\endcode
Generate implementation:
\code
uic [options] -impl
\endcode
\list
\i \ - name of the declaration file
\endlist
Generate image collection:
\code
uic [options] -embed ...
\endcode
\list
\i \ - project name
\i \ - image files
\endlist
For convenience, \e uic can also generate declaration or
implementation stubs for subclasses.
Generate subclass declaration:
\code
uic [options] -subdecl
\endcode
\list
\i \ - name of the subclass to generate
\i \ - declaration file of the baseclass
\endlist
Generate subclass implementation:
\code
uic [options] -subimpl
\endcode
\list
\i \ - name of the subclass to generate
\i \ - declaration file of the subclass
\endlist
\section2 General Options
\list
\i \c{-o file} - write output to 'file' rather than to stdout.
\i \c{-nofwd} - omit forward declarations of custom classes in the
generated header file. This is necessary if typedef classes are used.
\i \c{-tr func} - use \c{func(sourceText, comment)} rather than
trUtf8(sourceText, comment) for internationalization.
\i \c{-pch file} - add \c{#include "file"} as the first statement in the implementation file.
\endlist
\section1 Usage
\e uic is almost always invoked by \c{make (1)}, rather than by hand.
Here are useful makefile rules if you only use GNU make:
\code
%.h: %.ui
uic $< -o $@
%.cpp: %.ui
uic -impl $*.h $< -o $@
\endcode
If you want to write portably, you can use individual rules of the
following form:
\code
NAME.h: NAME.ui
uic $< -o $@
NAME.cpp: NAME.ui
uic -impl $*.h $< -o $@
\endcode
You must also remember to add \c{NAME.cpp} to your SOURCES (substitute
your favorite name) variable and \c{NAME.o} to your OBJECTS variable.
(While we prefer to name our C++ source files .cpp, the \e uic doesn't
care, so you can use .C, .cc, .CC, .cxx or even .c++ if you prefer.)
*/