The GTK binding is generated by the gtkwrap utility using the APILookup
files in this directory and the GIR files from GObject Introspection.

The gtkwrap utility parses APILookup.txt which tells it what to do/parse
using the commands listed bellow.
There to two types of commands key value pares and block commands which are denoted with
"command: start" and "command: end".

license: (block)
    Sets the license text used at the top of the generated files.

includeComments: (true/false)
    If true the generated code includes comments/documentation
    for the classes, funtions, etc.

alias: ctype dtype
    Replace ctype with dtype in the generated code.

outputRoot: path
    Directory where the generated code is stored.

srcDir: directory
    The source for the following component is placed in this directory.

copy: filename
    Copies filename form inputRoot to outputRoot/srcDir.

lookup: filename
    Continue parsing in filename.

wrap: packageName
    Starts wrapping a package, and uses packageName as it's name.
    After this command and until the end of the file, all commands
    only affect the package. and only the commands listed below can be used.

addAliases: (block)
    Add the contained text the the alias section of the c definitions.

addEnums: (block)
    Add the contained text the the enum section of the c definitions.

addStructs: (block)
    Add the contained text the the struct section of the c definitions.

addFuncts: (block)
    Add the contained text the the function/callback section of the c definitions.

addConstants: (block)
    Add the contained text the the alias constant of the c definitions.

file: path/filename
    Parse the a GIR file, the command can be used multiple times
    to combine different GIR files.

move: src dest [new_name]
    Move function src to struct dest. optionaly set a new name for the function.
    dest will be created if it doesn't exist.
    Currently only works for global functions, you can list the global functions
    that haven't been moved by running gtkwrap with the --print-free argument.

struct: name
    Sets the struct to which the following commands apply.
    If the struct doesn't exist it will be created.
    The name can be left blank, in wich case class and interface can
    be used to create a new class or interface.

class: name
    Overwrite the settings in the gir file and generate this struct as a class
    using the specified name.
    Or create a new class if the struct isn't set.

interface: name
    Overwrite the settings in the gir file and generate this struct as a interface
    using the specified name.
    Or create a new interface if the struct isn't set.

namespace: name
    Put the functions in a struct that is used as a namespace.
    name can be blank to generate the functions in module scope.

cType: type
    Override the cType used in the GIR file.

extend: base_class
    Explicitly set the base class for this class. base_class should match the name used
    in the GIR files eg: GObject.Object.

implements: interface
    Explicitly set an interface implemented by this class.
    This command can be used more than once.

merge: name
    merge struct 'name' with the struct set by struct:.

import: package.module
    Explicitly add imports to the generated file.

structWrap: ctype dtype
    Wrap ctype as dtype, insted of whats defined by the GIR files.

alias: ctype dtype
    Replace ctype with dtype in the generated code.

override: func_name
    Explicitly add the override attribute to function func_name.
    func_name should be the name specified in the GIR file.

noAlias: name
    Don't generate any code for alias name.
    name should be the name specified in the GIR file.

noEnum: name
    Don't generate any code for enum name.
    name should be the name specified in the GIR file.

noCallback: name
    Don't generate any code for callback name.
    name should be the name specified in the GIR file.

noCode: name
    Don't generate any code for function name.
    name should be the name specified in the GIR file.

noCode: true
    Don't generate any code for the struct set by struct:

noExternal: true
    Don't generate the c declaration for the struct set by struct:

noSignal: name
    Don't generate any code for signal name.
    name should be the name specified in the GIR file.

noStruct: true
    Don't generate any D code for struct set by struct:

code: (block)
    Add the contained code/text the the generated struct/class.

interfaceCode: (block)
    Add the contained code/text the the generated interface.

in: func_name param_name
    Override the GIR file and don't generate the specified
    parameter of func_name as out or ref.

out: func_name param_name
    Override the GIR file and generate the specified
    parameter of func_name as out.

ref: func_name param_name
    Override the GIR file and generate the specified
    parameter of func_name as ref.

inout: func_name param_name
    Ditto, Deprecated.

array: func_name param_array [param_length]
    Override the GIR file and handle param_array of function func_name
    as an array who's length is specified by param_length.
    If param_length isn't secified the wrapper asumes the array is zero terminated.
    "Return" can be used fo either param_array or param_length for when
    one of them is returned by the function.

copy: filename
    Copies filename form inputRoot to outputRoot/srcDir.

version X.XX: command: value
	Only include the command if the version specified in the Gir file is >= X.XX.

version X.XX: (block)
	The same as above but applies to all commands between the start and end tag.
	For the end tag the version number is optional.

