7 Programs of the default distribution
Besides the main iceWing program the iceWing package contains some additional tools
and utilities. This chapter gives a brief overview over all these tools. Most of the
tools are installed during the normal installation as described in chapter 2. One
tool, the icewing-control program, is only build and installed during the main
install process if the CMake build system is used. Otherwise it has to be installed
separately.
7.1 icewing
The icewing program is the main program of the iceWing package. This program was
already described in detail in this documentation.
7.2 icewing-config
icewing-config is a shell script similar to e.g. gtk-config which makes compiling of
own plugins easy. It generates compiler-flags, extracts system-paths, and more.
“icewing-config --help” shows all available options of the script. In detail these
are
-
–prefix
- Prints the installation directory of the iceWing package to stdout.
-
–bindir
- Prints the directory ${PREFIX}/bin, i.e the directory “bin” under the
installation directory, to stdout.
-
–libs
- Print the linker flags that are necessary to link an iceWing plugin to stdout. I.e.
the output of this command should be used during linking of own plugins.
-
–cflags
- Print the compiler flags that are necessary to compile an iceWing plugin to
stdout. I.e. the output of this command should be used during compiling of own
plugins.
-
–libdir
- Prints the directory ${PREFIX}/lib/iceWing, i.e the directory “lib/iceWing”
under the installation directory, to stdout. This is the directory where new
plugins should be installed.
-
–datadir
- Prints the directory ${PREFIX}/share/iceWing, i.e the directory
“share/iceWing” under the installation directory, to stdout. This is the directory
where plugins can store any data files. Additionally, iceWing itself stores some
data files in this directory.
-
–pincludedir
- Prints the directory ${PREFIX}/include/iwPlugins, i.e the directory
“include/iwPlugins” under the installation directory, to stdout. This is the place
where plugins can install new header files.
-
–home=HOME
- If specified, use HOME instead of ˜/.icewing for the –libdir-home,
–datadir-home, and –pincludedir-home options. This option must come before
these three “-home” options to take effect. This option can be used to adapt the
“-home” options to the ICEWING_PLUGIN_PATH environment variable.
-
–libdir-home
- Prints the directory ˜/.icewing/plugins to stdout. This is an alternative
directory to the one from –libdir where new plugins can be installed.
-
–datadir-home
- Prints the directory ˜/.icewing/data to stdout. This is an alternative
directory to the one from –datadir where plugins can store any data files.
-
–pincludedir-home
- Prints the directory ˜/.icewing/include to stdout. This is an
alternative directory to the one from –pincludedir where plugins can install new
header files.
-
–version
- Prints the version number of iceWing to stdout.
As an alternative to icewing-config a metadata file for pkg-config is installed as well. E.g.
“pkg-config –cflags icewing” will print the necessary compiler flags for compiling an iceWing
plugin. All the other information icewing-config provides can be as well retrieved with
pkg-config. The only difference is that pkg-config does not support variable names with “-”
in its names, so “_” is used instead.
7.3 icewing-control
icewing-control allows to remote control iceWing. The tool uses the capability of iceWing to
save and load all its current status into a configuration file. Remote control works quite
similar: The tool can send a string containing any lines of the iceWing configuration file to a
running iceWing instance and can receive a string from iceWing containing the complete
current configuration.
iceWing has to be started with the “-of” option or the remotectrl plugin has to be used. If
the option “-of” is used, DACS communication is used and icewing-control must be started
with the “-n” option. If the remotectrl plugin is used, native sockets based communication
or XCF based communication can be used and icewing-control must be started with the
corresponding “-p” or “-x” option to allow communication between iceWing and the
icewing-control tool. See page 41 and section 6.6 for more details about the “-of” option
and the remotectrl plugin.
“icewing-control --help” shows all available options of the tool. In detail these
are
-
-p [host:port]
- Use the own internal Internet sockets based protocol for
communication with the remotectrl plugin of a running iceWing instance. The
argument gives the location where the remotectrl plugin is running. The default
is “localhost:4208”.
-
-n [name]
- Use DACS for communication with a running iceWing instance. The
argument is the DACS name of the icewing program as specified with the iceWing
“-n” option (see page 34). The default is “icewing”.
-
-x [xcf-server]
- Use XCF for communication with the remotectrl plugin of a running
iceWing instance. The argument is the XCF server name of the remotectrl plugin
as specified with the remotectrl “-x” option (see section 6.6). The default is
“xcf”.
-
-g
- Call the “char[] getSettings(void)” function to get all current widget settings and
print them to stdout. Exit icewing-control after all command line options have
been processed.
-
-s config-setting
- Call the “void control(char[])” function to set the specified widgets
to the specified values and exit icewing-control after all command line options
have been processed. An example would
be “-s "GrabImage1.Wait Time = 94"” to set the “Wait Time” button on the
“GrabImage1” page to 94.
If neither any “-g” nor any “-s” option is given, an interactive shell is started. The shell
supports TAB completion for commands and its arguments. The available commands
are
-
help
- Show all available commands.
-
get
- Get all iceWing settings and print them to stdout. This is identical to the “-g”
option.
-
set
- Set one widget in iceWing to a new value. For example the command
“set GrabImage1.Wait Time = 94” sets the “Wait Time” button on the
“GrabImage1” page to 94. This is identical to the “-s” option.
-
quit
- Quit the icewing-control tool.
7.4 icewing-docgen
icewing-docgen is a shell script which collects help messages of all plugins which are
installed under ${PREFIX}/lib/iceWing and all plugins which are integrated in iceWing.
The script calls all these plugins with the option “-h” and stores the output in the
files “Readme.txt” and “Readme.html” in the current directory. Additionally, it
copies the file “Readme.txt” to “${PREFIX}/share/iceWing/plugins.help”. This
file is used by iceWing to display additional information about plugins on the
“Plugins” page in the “Plugin Info” window. See section 5.2.4 for information
about this window. You should use this script every time after installing new
plugins.
7.5 icewing-plugingen
icewing-plugingen is a plugin template generator. The script generates in the current
directory a basic C or C++ plugin including a Makefile to compile it. The plugin is directly
compiled for immediate testing. The plugin is kept short and simple, but shows
already data observation, easy user interface generation, and rendering of data in a
window.
“icewing-plugingen --help” gives more information about its invocation. It is a shell
script which expects up to three arguments:
> icewing-plugingen [-c|-cxx|-cpp]
plugin-name short-name
-
-c
- If given, a new C-plugin of name “plugin-name” is generated in the current
directory. Function and type names in the generated source start with
“short-name”. This option is the default if none of the three is given.
-
-cxx
- If given, a new C++-Plugin of name “plugin-name” deriving from the class
Plugin is created in the current directory.
-
-cpp
- This is a synonym for -cxx. See there for a description of the option.