Advanced:Development? and Code FAQ

Map Window Button Creation

Q: could anyone please tell me where the map window buttons ("nav", "config" ...) are created? Maybee i'm too stupid but I can't find them...

A: In InfoBoxLayout?.cpp - InputEvents?.cpp constructs them when loading the xci file or initialising the compiled-in version.

Default Input Configuration

Q: I want to change the content of Common/Header/InputEvents_defaults.cpp entries

A: Don't. They are created automatically from Common/Data/Input/default.xci. Once you make the changes in default.xci then you can type "make" in that directory, or run the Perl create script by hand. e.g. "perl xci2cpp.pl default.xci > ../../Header/InputEvents_defaults.cpp". The compile version (Common/Header/InputEvents_defaults.cpp) is only in the repository for convenience.

Q: I want to test my new XCI without recompiling

A: You can load XCI (input) and most other configuration - even the Dialogue XML files - without recompiling. If you get the complete (15-16k long) default.xci which is the standard default embedded you can can overwrite the internal one by putting on the first line #CLEAR

Developer configuration

Q: How do I compile XSoar?

A: For linux, just download the source code, install one of the MinGW compilers, and follow the build steps

http://xcsoar.org/trac/wiki/Advanced/Development/Build

For Windows, follow the steps to configure the Eclipse environment

http://xcsoar.org/trac/wiki/Advanced/Development/Setup

How does the profile and registry loading thing work?

Basically, first XCS detects the "localpath" of XCSoarData. Then, it open a .prf profile and put the values inside system registry. Then it loads back these values from the system registry .