Add native notification box for errors on linux.

Errors will now be shown as a message box, instead of
only a console message. This fixes the user not seeing
error messages, like if the IWAD is not provided.

- Add zenity notification box call on I_Error
setup: Detect and ignore bad joystick axes.

In some cases a joystick axis can be "stuck" and have a large
uncentered value. These must be detected and ignored, otherwise the
axis can be chosen during calibration instead of the user's actual
desired axis.
Merge pull request #388 from willybarro/355_show_error_messagebox_on_linux

Add native notification box for errors on linux.
Merge branch 'master' of github.com:chocolate-doom/chocolate-doom
system: Escape special characters for Zenity.

When invoking Zenity to display an error message, some characters can
have special meanings to the shell. Escape these properly so that the
error message is always shown correctly.

This fixes #355.
strife: Fix joystick jump button.

The code to handle the joystick jump button variable was not
implemented. Check the jump button on the joystick as well as the
keyboard and mouse button equivalents when deciding whether to set
the jump bit.
joystick: Mask out bits for button axis buttons.

When a "button" is actually used as part of a button axis, don't
include presses on the button as part of the buttons field posted
in joystick events. This avoids situations where button 1 or 2
are part of a D-pad, breaking menu navigation (related to #389).
system: Refactor error dialog box.

When showing error message via Zenity, show the expanded (sprintf'ed)
error, not the format string. Refactor the sprintf part to be part of
the common code to avoid duplication.
joystick: Add virtual-physical button mapping.

The solution to solving #386 is to add a layer of indirection: the
game code can only support up to ~20 joystick buttons, but this
doesn't matter as long as we never want to bind more than 20 buttons
to actions anyway. Redefine the game's notion of buttons to be based
on "virtual" joystick buttons, and map these buttons to physical
(SDL) buttons based on configuration file variables.
setup: Configure joystick buttons with virtual mapping.

Refactor how joystick buttons are reassigned. Define a fixed
mapping from joyb* variables to virtual buttons, and change the
button assignments at the virtual->physical mapping level.
config: Clarify config file documentation.

Re-word some of the documentation for the joystick button config
variables, to avoid confusion between physical/virtual joystick
buttons.
setup: Add control for joystick menu button.

The code is already in place for this but there was no control in
the setup tool to configure it.
opl: Fix crash when using OPL music.

The previous change to add the poll method to the music module
interface introduced a crash, as the OPL music struct does not
define a poll method.
setup: Enable joystick after calibration.

If the user has just successfully calibrated the joystick, then
turn on use_joystick as a convenience feature.
setup: fix usejoystick/use_joystick typo in the previous commit
Merge pull request #393 from chungy/master

setup: fix usejoystick/use_joystick typo in the previous commit
setup: Start a list of known gamepads.

Detect certain gamepads by name and automatically configure defaults
for buttons and axes, to minimize setup time. Supported so far are
the PS3 controller and AIRFLO gamepad.
setup: Fix disabling of joystick button bindings.

When setting a joystick button binding to -1 to disable it, set it
directly; do not go through to the physical button mapping layer.

Also add a quick note to encourage users to send in details of their
gamepads.
setup: Add configuration for Wii remote.

The Wii remote is not a HID device, meaning it cannot be supported in
a proper cross-platform way. However, it can be supported for
individual platforms. Add a fingerprint and configuration for a Wii
remote under OS X using the WJoy tool.
music: Tweak comment parsing for substitute configs.

Allow comments to be attached to the end of configuration lines, as
well as being specified on a line on their own.