+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>Enjoyable Help</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <meta name="AppleTitle" content="Enjoyable Help" />
- <meta name="AppleIcon" content="Enjoyable Help/gfx/Icon.png" />
- <meta name="robots" content="anchors" />
- <link href="sty/default.css" rel="stylesheet" type="text/css" media="all"/>
- </head>
-
- <body>
- <a name="home"></a>
-
- <div id="navbox">
- <div id="navrightbox">
- </div>
- </div>
-
- <div id="headerbox">
- <div id="iconbox">
- <img id="iconimg" src="gfx/Icon.png" alt="Enjoyable Icon" height="32" width="32"/>
- </div>
- <div id="pagetitlebox">
- <h1>Enjoyable Help</h1>
- </div>
- </div>
-
- <p style="margin-bottom: 2em">
- Enjoyable helps you use a joystick or gamepad to control
- applications which normally require a keyboard and mouse.
- </p>
-
- <div style="display: table-cell; width: 40%; padding-right: 1em">
- <h3>Quick Start</h3>
- <ul>
- <li>Connect a joystick or gamepad.</li>
- <li>Press a button on it, then the keyboard key you want to use.</li>
- <li>Press the ▶ button in the upper-right.</li>
- <li>Start up your game and use your gamepad!</li>
- </ol>
- </div>
-
- <div style="display: table-cell; width: 60%; border-left: solid #666 1px; padding-left: 1em; margin-top: 1em">
- <p>
- <a href="help:anchor='keyboard' bookID='Enjoyable Help'">
- Keyboard Events
- </a><br />
- Map buttons to keys on a keyboard.
- </p>
- <p>
- <a href="help:anchor='mouse' bookID='Enjoyable Help'">
- Mouse Events
- </a><br />
- Use axes and buttons to simulate a mouse.
- </p>
- <p>
- <a href="help:anchor='mappings' bookID='Enjoyable Help'">
- Application Mappings
- </a><br />
- Create and share mappings for different applications.
- </p>
- <p>
- <a href="help:anchor='problems' bookID='Enjoyable Help'">
- Troubleshooting
- </a><br />
- Assistance for common problems.
- </p>
- </div>
-
- <p style="border-top: #777 solid 1px; text-align: center; margin-top: 2em">
- <a class="weblink" href="help:anchor='boring' bookID='Enjoyable Help'">
- license
- </a>
- -
- <a class="weblink" href="http://yukkurigames.com/enjoyable">
- website
- </a>
- </p>
-
- </body>
-</html>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>License & Copyright</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <meta name="robots" content="anchors" />
- <link href="../sty/default.css"
- rel="stylesheet"
- type="text/css"
- media="all"/>
- </head>
-
- <body>
- <a name="boring"></a>
-
- <div id="navbox">
- <div id="navleftbox">
- <a class="navlink_left"
- href="help:anchor='home' bookID='Enjoyable Help'">
- Home
- </a>
- </div>
- </div>
-
- <div id="headerbox">
- <div id="iconbox">
- <img id="iconimg"
- src="../gfx/Icon.png"
- alt="Icon"
- height="32" width="32"/>
- </div>
- <h1>License & Copyright</h1>
- </div>
-
- <h3><a name="copyright"></a>Copyright</h3>
- <p>
- 2013 Joe Wreschnig<br />
- 2012 Yifeng Huang<br />
- 2009 Sam McCall & the University of Otago
- </p>
-
- <h3><a name="license"></a>License</h3>
- <p>
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documentation
- files (the "Software"), to deal in the Software without
- restriction, including without limitation the rights to use,
- copy, modify, merge, publish, distribute, sublicense, and/or
- sell copies of the Software, and to permit persons to whom the
- Software is furnished to do so, subject to the following
- conditions:
- </p>
- <p>
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
- </p>
- <p>
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- </p>
- <p>
- The joystick icon is from the Tango icon set and is public
- domain.
- </p>
- </body>
-</html>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>Keyboard Events</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <meta name="robots" content="anchors" />
- <link href="../sty/default.css"
- rel="stylesheet"
- type="text/css"
- media="all"/>
- </head>
-
- <body>
- <a name="keyboard"></a>
-
- <div id="navbox">
- <div id="navleftbox">
- <a class="navlink_left"
- href="help:anchor='home' bookID='Enjoyable Help'">
- Home
- </a>
- </div>
- </div>
-
- <div id="headerbox">
- <div id="iconbox">
- <img id="iconimg"
- src="../gfx/Icon.png"
- alt="Enjoyable Icon"
- height="32" width="32"/>
- </div>
- <h1>Keyboard Events</h1>
- </div>
-
- <p>
- Enjoyable supports mapping joystick buttons, hat switches, and
- axis thresholds to simulate keyboard keys. First disable
- mapping by deactivating the ▶ button in the top left. Then press
- the button on the joystick you want to map. This will select it
- on the left-hand side of the screen.
- </p>
-
- <p>
- If the button wasn't mapped or was mapped to a key press
- already, the key input field activates and you can simply press
- the key you want to use. Otherwise, click on the <b>Press a
- key</b> label or input field, then press the key.
- </p>
-
- <p>
- To change a key without disabling mapping you can choose the
- input's entry in the sidebar directly.
- </p>
-
- <h3><a name="clear_key"></a>Clearing the Selection</h3>
- <p>
- To clear a mapped key either select the <b>Do nothing</b>
- option or press ⌥⌫ when the key input field is selected.
- </p>
-
- <h3><a name="cancel_key"></a>Cancelling the Selection</h3>
- <p>
- If you select the key input field by mistake you can press ⌥⎋
- to cancel the selection without changing the current setting.
- </p>
- </body>
-</html>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>Application Mappings</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <meta name="robots" content="anchors" />
- <link href="../sty/default.css"
- rel="stylesheet"
- type="text/css"
- media="all"/>
- </head>
-
- <body>
- <a name="mappings"></a>
-
- <div id="navbox">
- <div id="navleftbox">
- <a class="navlink_left"
- href="help:anchor='home' bookID='Enjoyable Help'">
- Home
- </a>
- </div>
- </div>
-
- <div id="headerbox">
- <div id="iconbox">
- <img id="iconimg"
- src="../gfx/Icon.png"
- alt="Icon"
- height="32" width="32"/>
- </div>
- <h1>Application Mappings</h1>
- </div>
-
- <p>
- You can make many different mappings and switch between them
- easily. To open the list of mappings click the button at the
- top-left or press ⌘L.
- </p>
-
- <p>
- Click on a mapping to switch to it. Create a new mapping with
- the + button or by typing ⌘N. Delete the current mapping with
- the - button or ⌘⌫. Rename a mapping by double-clicking on it or
- pressing Return while it's selected.
- </p>
-
- <p>
- You can also switch mappings with the <b>Mappings</b> menu, with
- Enjoyable's dock menu, or by pressing ⌘1 through ⌘9.
- </p>
-
- <p>
- Switching mappings can also be mapped to an input. Select the
- input you wish to use and then choose a mapping from
- the <b>Switch to mapping</b> option. For example, you could have
- one mapping for a game's menu and another for its main screen
- and switch between them in-game without returning to Enjoyable.
- </p>
-
- <h3><a name="automatic"></a>Automatic Switching</h3>
- <p>
- If you name a mapping after an application it will be
- automatically chosen when you switch to that application. The
- name of an application is usually shown on the dock when you
- hover your mouse over it. If you don't know the name of the
- application you want to create a mapping for, create a mapping
- with the name <kbd>@Application</kbd> (note the <kbd>@</kbd> at
- the start). The mapping will automatically be renamed for the
- next application you switch to while it's enabled.
- </p>
-
- <h3><a name="sharing"></a>Import and Export</h3>
- <p>
- Mappings can be exported and shared with other people. To export
- your current mapping choose <b>Mappings > Export…</b> or press ⌘S and
- save the file. This file can be shared with anyone; it doesn't
- contain any personal information other than the product IDs of
- the input devices you used and what you mapped them to.
- </p>
- <p>
- To import a mapping choose <b>Mappings > Import…</b> or press
- ⌘O and select the file you want to import. Mapping files end
- with <kbd>.enjoyable</kbd> (the default), <kbd>.json</kbd>,
- or <kbd>.txt</kbd>. If the imported mapping conflicts with one
- you already made, you can choose to merge the two mappings or
- create a new one with the same name.
- </p>
- </body>
-</html>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>Mouse Events</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <meta name="robots" content="anchors" />
- <link href="../sty/default.css"
- rel="stylesheet"
- type="text/css"
- media="all"/>
- </head>
-
- <body>
- <a name="mouse"></a>
-
- <div id="navbox">
- <div id="navleftbox">
- <a class="navlink_left"
- href="help:anchor='home' bookID='Enjoyable Help'">
- Home
- </a>
- </div>
- </div>
-
- <div id="headerbox">
- <div id="iconbox">
- <img id="iconimg"
- src="../gfx/Icon.png"
- alt="Icon"
- height="32" width="32"/>
- </div>
- <h1>Mouse Events</h1>
- </div>
-
- <p>
- You can use Enjoyable to map input to mouse buttons, moving, and
- scrolling.
- </p>
-
- <h3>Movement</h3>
- <p>
- Select the direction you'd like the input to move the
- mouse. Adjust the movement speed using the slider underneath. If
- you are mapping an analog input then this is the maximum speed;
- for a button it's a constant speed.
- </p>
- <p>
- The speed is set independently for each input. You can have
- faster horizontal movement than vertical movement, or map one
- set of inputs to a fast speed and another set to a slow
- speed.
- </p>
-
- <h3>Buttons</h3>
- <p>
- Select the mouse button you'd like the input to simulate.
- </p>
-
- <h3><a name="scrolling"></a>Scrolling</h3>
- <p>
- Simulated scrolling can be continuous like the scrolling
- gestures on a trackpad, or discrete like a mouse wheel that
- clicks as you spin it.
- </p>
- <p>
- To use <em>continuous scrolling</em> choose ↑ or ↓. Use the
- slider underneath them to adjust the scrolling speed. If you are
- mapping an analog input then this is the maximum speed; for a
- button it's a constant speed.
- <p>
- To use <em>discrete scrolling</em> choose ⤒ or ⤓. The input
- will trigger scrolling up or down by exactly one line and stop,
- regardless of how long you hold the button down or how far
- you move an analog input.
- </p>
- <p>
- The arrows indicate the direction you would spin a mouse wheel
- or move your fingers. Depending on settings this may mean you
- need to choose a down arrow to scroll up and vice versa. You can
- also change this globally in <b> > System Preferences… >
- Mouse</b> and <b> > System Preferences… > Trackpad</b>.
- </p>
-
- <h3><a name="mouseissues"></a>Known Issues</h3>
- <p>
- Mouse events are more fragile than keyboard ones. While Enjoyble
- will work fine for most games, regular OS X (Cocoa) applications
- require specially formatted mouse events. Features such as
- click-and-drag or double-clicking will not work correctly, so
- many applications will behave incorrectly if driven by an
- Enjoyable simulated mouse.
- </p>
- <p>
- If you find a non-Cocoa application that has problems with
- Enjoyable's mouse
- support <a href="https://github.com/joewreschnig/enjoyable/issues">please
- file a ticket in the issue tracker</a>.
- </p>
-
- </body>
-</html>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>Troubleshooting</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <meta name="robots" content="anchors" />
- <link href="../sty/default.css"
- rel="stylesheet"
- type="text/css"
- media="all"/>
- </head>
-
- <body>
- <a name="problems"></a>
-
- <div id="navbox">
- <div id="navleftbox">
- <a class="navlink_left"
- href="help:anchor='home' bookID='Enjoyable Help'">
- Home
- </a>
- </div>
- </div>
-
- <div id="headerbox">
- <div id="iconbox">
- <img id="iconimg"
- src="../gfx/Icon.png"
- alt="Icon"
- height="32" width="32"/>
- </div>
- <h1>Troubleshooting</h1>
- </div>
-
- <h3>
- <a name="unavailable"></a>
- When I start Enjoyable, it says "Input devices are unavailable"
- </h3>
- <p>
- This happens if Enjoyable is refused access to your input
- devices by Mac OS X. This usually happens if another application
- has requested exclusive access to them. Try quitting any other
- applications using your input devices. If that doesn't work, try
- disconnecting and reconnecting the device, then restarting
- Enjoyable. If it still doesn't work you may need to reboot.
- </p>
-
- <h3>
- <a name="noswitch"></a>
- Enjoyable never switches to my application mapping
- </h3>
- <p>
- Make sure it matches the name of the application exactly. If you
- still have trouble, name the mapping <kbd>@Application</kbd> and
- switch back to have Enjoyable try to deduce the correct name
- automatically.
- </p>
-
- <h3>
- Mouse clicks and drags don't work
- <a name="brokenmouse"></a>
- </h3>
- <p>
- This is a known issue with Cocoa applications, as they require
- more specially-crafted mouse events. We hope to fix it in a
- future version.
- </p>
- </body>
-</html>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>Title</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <meta name="robots" content="anchors" />
- <link href="../sty/default.css"
- rel="stylesheet"
- type="text/css"
- media="all"/>
- </head>
-
- <body>
- <a name="primary"></a>
-
- <div id="navbox">
- <div id="navleftbox">
- <a class="navlink_left"
- href="help:anchor='home' bookID='Enjoyable Help'">
- Home
- </a>
- </div>
- </div>
-
- <div id="headerbox">
- <div id="iconbox">
- <img id="iconimg"
- src="../gfx/Icon.png"
- alt="Icon"
- height="32" width="32"/>
- </div>
- <h1>Title</h1>
- </div>
-
- <p>
- Content starts here.
- </p>
- </body>
-</html>
+++ /dev/null
-body {\r font-size: 8pt;\r font-family: "Lucida Grande", Arial, sans-serif;\r line-height: 12pt;\r text-decoration: none;\r margin-right: 1em;\r margin-left: 1em;\r}\r\r#navbox { \r background-color: #f2f2f2; \r position: fixed;\r top: 0; \r left: 0; \r width: 100%; \r height: 1.5em; \r float: left; \r border-bottom: 1px solid #bfbfbf\r}\r\r#navleftbox { \r position: absolute; \r top: 1px; \r left: 15px \r}\r\r#navrightbox { \r background-color: #f2f2f2; \r padding-right: 25px; \r float: right; \r padding-bottom: 1px; \r border-left: 1px solid #bfbfbf\r}\r\r#navbox a {\r font-size: 8pt;\r color: #666;\r font-weight: normal;\r margin: -9px 0 -6px;\r}\r\r#headerbox {\r margin-top: 36px;\r padding-right: 6px;\r margin-bottom: 2em;\r}\r\r#iconbox {\r float: left;\r}\r\rh1 {\r margin-left: 40px;\r width: 88%;\r font-size: 15pt;\r line-height: 15pt;\r font-weight: bold;\r padding-top: 6px;\r margin-bottom: 0;\r}\r\rh2 {\r font-size: 11pt;\r line-height: 12pt;\r font-weight: bold;\r color: black;\r margin-top: 0;\r margin-bottom: 11px;\r}\r\rh3 {\r font-size: 8pt;\r font-weight: bold;\r letter-spacing: 0.1em;\r line-height: 8pt;\r color: #666;\r margin-top: 1em;\r margin-bottom: 0px;\r padding-bottom: 0.5em;\r}\r\rp {\r margin-left: 0px;\r margin-top: 0px;\r margin-bottom: 0.5em;\r}\r\rul {\r margin-left: 2em;\r margin-top: 6px;\r margin-bottom: 0px;\r padding-left: 0px;\r}\r\rli {\r margin-left: 0px;\r}\r\ra {\r color: #778fbd;\r font-size: 9pt;\r font-weight: bold;\r text-decoration: none;\r}\r\ra:hover {\r text-decoration: underline;\r}\r\r.weblink {\r color: #666;\r font-weight: normal;\r}\r
\ No newline at end of file
D594BF830FAE9661007A85F2 /* EnjoyableApplicationDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D594BF820FAE9661007A85F2 /* EnjoyableApplicationDelegate.m */; };
D5F809710FB093400006A4DE /* NJOutputMapping.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F809700FB093400006A4DE /* NJOutputMapping.m */; };
D5F80A9D0FB0A2FF0006A4DE /* icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = D5617A080FAEAF8300928B3A /* icon.icns */; };
- EE03150D16E63481002B2DCE /* Enjoyable Help in Resources */ = {isa = PBXBuildFile; fileRef = EE03150C16E63481002B2DCE /* Enjoyable Help */; };
+ EE03150D16E63481002B2DCE /* Help in Resources */ = {isa = PBXBuildFile; fileRef = EE03150C16E63481002B2DCE /* Help */; };
EE1D7C9216E01E7000B000EB /* NSView+FirstResponder.m in Sources */ = {isa = PBXBuildFile; fileRef = EE1D7C9116E01E7000B000EB /* NSView+FirstResponder.m */; };
EE1D7C9616E0ECCF00B000EB /* NSError+Description.m in Sources */ = {isa = PBXBuildFile; fileRef = EE1D7C9516E0ECCF00B000EB /* NSError+Description.m */; };
EE96929416E54B480054A3C8 /* NSMenu+RepresentedObjectAccessors.m in Sources */ = {isa = PBXBuildFile; fileRef = EE96929316E54B480054A3C8 /* NSMenu+RepresentedObjectAccessors.m */; };
+ EED7E81516E7ADBB004A0BA4 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = EED7E81416E7ADBB004A0BA4 /* Info.plist */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
D594BF820FAE9661007A85F2 /* EnjoyableApplicationDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EnjoyableApplicationDelegate.m; sourceTree = "<group>"; };
D5F8096F0FB093400006A4DE /* NJOutputMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJOutputMapping.h; sourceTree = "<group>"; };
D5F809700FB093400006A4DE /* NJOutputMapping.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJOutputMapping.m; sourceTree = "<group>"; };
- EE03150C16E63481002B2DCE /* Enjoyable Help */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "Enjoyable Help"; sourceTree = "<group>"; };
+ EE03150C16E63481002B2DCE /* Help */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Help; sourceTree = "<group>"; };
EE1D7C9016E01E7000B000EB /* NSView+FirstResponder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSView+FirstResponder.h"; sourceTree = "<group>"; };
EE1D7C9116E01E7000B000EB /* NSView+FirstResponder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSView+FirstResponder.m"; sourceTree = "<group>"; };
EE1D7C9416E0ECCF00B000EB /* NSError+Description.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSError+Description.h"; sourceTree = "<group>"; };
EE1D7C9516E0ECCF00B000EB /* NSError+Description.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSError+Description.m"; sourceTree = "<group>"; };
EE96929216E54B480054A3C8 /* NSMenu+RepresentedObjectAccessors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSMenu+RepresentedObjectAccessors.h"; sourceTree = "<group>"; };
EE96929316E54B480054A3C8 /* NSMenu+RepresentedObjectAccessors.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMenu+RepresentedObjectAccessors.m"; sourceTree = "<group>"; };
+ EED7E81416E7ADBB004A0BA4 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Help/Contents/Info.plist; sourceTree = "<group>"; };
EEF86B7316E2241000674B87 /* NJInputPathElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NJInputPathElement.h; sourceTree = "<group>"; };
EEF86B7416E298CD00674B87 /* NJEvents.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NJEvents.h; sourceTree = "<group>"; };
/* End PBXFileReference section */
29B97314FDCFA39411CA2CEA /* Enjoy */ = {
isa = PBXGroup;
children = (
+ EED7E81416E7ADBB004A0BA4 /* Info.plist */,
080E96DDFE201D6D7F000001 /* Classes */,
EE1D5F8B16E403D600749C36 /* Categories */,
29B97315FDCFA39411CA2CEA /* Other Sources */,
29B97317FDCFA39411CA2CEA /* Resources */ = {
isa = PBXGroup;
children = (
- EE03150C16E63481002B2DCE /* Enjoyable Help */,
+ EE03150C16E63481002B2DCE /* Help */,
D5617A080FAEAF8300928B3A /* icon.icns */,
8D1107310486CEB800E47090 /* Info.plist */,
089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
isa = PBXNativeTarget;
buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "Enjoyable" */;
buildPhases = (
+ EED7E81616E7B547004A0BA4 /* ShellScript */,
8D1107290486CEB800E47090 /* Resources */,
8D11072C0486CEB800E47090 /* Sources */,
8D11072E0486CEB800E47090 /* Frameworks */,
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */,
D5F80A9D0FB0A2FF0006A4DE /* icon.icns in Resources */,
- EE03150D16E63481002B2DCE /* Enjoyable Help in Resources */,
+ EE03150D16E63481002B2DCE /* Help in Resources */,
+ EED7E81516E7ADBB004A0BA4 /* Info.plist in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
+/* Begin PBXShellScriptBuildPhase section */
+ EED7E81616E7B547004A0BA4 /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "cd ${SOURCE_ROOT}/Help/Contents/Resources/English.lproj\nmake\n";
+ };
+/* End PBXShellScriptBuildPhase section */
+
/* Begin PBXSourcesBuildPhase section */
8D11072C0486CEB800E47090 /* Sources */ = {
isa = PBXSourcesBuildPhase;
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleIdentifier</key>
+ <string>com.yukkurigames.Enjoyable.help</string>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>en_US</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>Enjoyable</string>
+ <key>CFBundlePackageType</key>
+ <string>BNDL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1</string>
+ <key>CFBundleSignature</key>
+ <string>hbwr</string>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+ <key>HPDBookAccessPath</key>
+ <string>index.html</string>
+ <key>HPDBookIconPath</key>
+ <string>gfx/Icon.png</string>
+ <key>HPDBookIndexPath</key>
+ <string>Enjoyable.helpindex</string>
+ <key>HPDBookKBProduct</key>
+ <string>enjoyable1</string>
+ <key>HPDBookTitle</key>
+ <string>Enjoyable Help</string>
+ <key>HPDBookType</key>
+ <string>3</string>
+</dict>
+</plist>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Enjoyable Help</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <meta name="AppleTitle" content="com.yukkurigames.Enjoyable.help" />
+ <meta name="AppleIcon" content="gfx/Icon.png" />
+ <meta name="robots" content="anchors" />
+ <link href="sty/default.css" rel="stylesheet" type="text/css" media="all"/>
+ </head>
+
+ <body>
+ <a name="home"></a>
+
+ <div id="navbox">
+ <div id="navrightbox">
+ </div>
+ </div>
+
+ <div id="headerbox">
+ <div id="iconbox">
+ <img id="iconimg" src="gfx/Icon.png" alt="Enjoyable Icon" height="32" width="32"/>
+ </div>
+ <div id="pagetitlebox">
+ <h1>Enjoyable Help</h1>
+ </div>
+ </div>
+
+ <p style="margin-bottom: 2em">
+ Enjoyable helps you use a joystick or gamepad to control
+ applications which normally require a keyboard and mouse.
+ </p>
+
+ <div style="display: table-cell; width: 40%; padding-right: 1em">
+ <h3>Quick Start</h3>
+ <ul>
+ <li>Connect a joystick or gamepad.</li>
+ <li>Press a button on it, then the keyboard key you want to use.</li>
+ <li>Press the ▶ button in the upper-right.</li>
+ <li>Start up your game and use your gamepad!</li>
+ </ol>
+ </div>
+
+ <div style="display: table-cell; width: 60%; border-left: solid #666 1px; padding-left: 1em; margin-top: 1em">
+ <p>
+ <a href="help:anchor='keyboard' bookID='com.yukkurigames.Enjoyable.help'">
+ Keyboard Events
+ </a><br />
+ Map buttons to keys on a keyboard.
+ </p>
+ <p>
+ <a href="help:anchor='mouse' bookID='com.yukkurigames.Enjoyable.help'">
+ Mouse Events
+ </a><br />
+ Use axes and buttons to simulate a mouse.
+ </p>
+ <p>
+ <a href="help:anchor='mappings' bookID='com.yukkurigames.Enjoyable.help'">
+ Application Mappings
+ </a><br />
+ Create and share mappings for different applications.
+ </p>
+ <p>
+ <a href="help:anchor='problems' bookID='com.yukkurigames.Enjoyable.help'">
+ Troubleshooting
+ </a><br />
+ Assistance for common problems.
+ </p>
+ </div>
+
+ <p style="border-top: #777 solid 1px; text-align: center; margin-top: 2em">
+ <a class="weblink" href="help:anchor='boring' bookID='com.yukkurigames.Enjoyable.help'">
+ license
+ </a>
+ -
+ <a class="weblink" href="http://yukkurigames.com/enjoyable">
+ website
+ </a>
+ </p>
+
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>License & Copyright</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <link href="../sty/default.css"
+ rel="stylesheet"
+ type="text/css"
+ media="all"/>
+ </head>
+
+ <body>
+ <a name="boring"></a>
+
+ <div id="navbox">
+ <div id="navleftbox">
+ <a class="navlink_left"
+ href="help:anchor='home' bookID='com.yukkurigames.Enjoyable.help'">
+ Home
+ </a>
+ </div>
+ </div>
+
+ <div id="headerbox">
+ <div id="iconbox">
+ <img id="iconimg"
+ src="../gfx/Icon.png"
+ alt="Icon"
+ height="32" width="32"/>
+ </div>
+ <h1>License & Copyright</h1>
+ </div>
+
+ <h3><a name="copyright"></a>Copyright</h3>
+ <p>
+ 2013 Joe Wreschnig<br />
+ 2012 Yifeng Huang<br />
+ 2009 Sam McCall & the University of Otago
+ </p>
+
+ <h3><a name="license"></a>License</h3>
+ <p>
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation
+ files (the "Software"), to deal in the Software without
+ restriction, including without limitation the rights to use,
+ copy, modify, merge, publish, distribute, sublicense, and/or
+ sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following
+ conditions:
+ </p>
+ <p>
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+ </p>
+ <p>
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ OTHER DEALINGS IN THE SOFTWARE.
+ </p>
+ <p>
+ The joystick icon is from the Tango icon set and is public
+ domain.
+ </p>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Keyboard Events</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <link href="../sty/default.css"
+ rel="stylesheet"
+ type="text/css"
+ media="all"/>
+ </head>
+
+ <body>
+ <a name="keyboard"></a>
+
+ <div id="navbox">
+ <div id="navleftbox">
+ <a class="navlink_left"
+ href="help:anchor='home' bookID='com.yukkurigames.Enjoyable.help'">
+ Home
+ </a>
+ </div>
+ </div>
+
+ <div id="headerbox">
+ <div id="iconbox">
+ <img id="iconimg"
+ src="../gfx/Icon.png"
+ alt="Enjoyable Icon"
+ height="32" width="32"/>
+ </div>
+ <h1>Keyboard Events</h1>
+ </div>
+
+ <p>
+ Enjoyable supports mapping joystick buttons, hat switches, and
+ axis thresholds to simulate keyboard keys. First disable
+ mapping by deactivating the ▶ button in the top left. Then press
+ the button on the joystick you want to map. This will select it
+ on the left-hand side of the screen.
+ </p>
+
+ <p>
+ If the button wasn't mapped or was mapped to a key press
+ already, the key input field activates and you can simply press
+ the key you want to use. Otherwise, click on the <b>Press a
+ key</b> label or input field, then press the key.
+ </p>
+
+ <p>
+ To change a key without disabling mapping you can choose the
+ input's entry in the sidebar directly.
+ </p>
+
+ <h3><a name="clear_key"></a>Clearing the Selection</h3>
+ <p>
+ To clear a mapped key either select the <b>Do nothing</b>
+ option or press ⌥⌫ when the key input field is selected.
+ </p>
+
+ <h3><a name="cancel_key"></a>Cancelling the Selection</h3>
+ <p>
+ If you select the key input field by mistake you can press ⌥⎋
+ to cancel the selection without changing the current setting.
+ </p>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Application Mappings</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <link href="../sty/default.css"
+ rel="stylesheet"
+ type="text/css"
+ media="all"/>
+ </head>
+
+ <body>
+ <a name="mappings"></a>
+
+ <div id="navbox">
+ <div id="navleftbox">
+ <a class="navlink_left"
+ href="help:anchor='home' bookID='com.yukkurigames.Enjoyable.help'">
+ Home
+ </a>
+ </div>
+ </div>
+
+ <div id="headerbox">
+ <div id="iconbox">
+ <img id="iconimg"
+ src="../gfx/Icon.png"
+ alt="Icon"
+ height="32" width="32"/>
+ </div>
+ <h1>Application Mappings</h1>
+ </div>
+
+ <p>
+ You can make many different mappings and switch between them
+ easily. To open the list of mappings click the button at the
+ top-left or press ⌘L.
+ </p>
+
+ <p>
+ Click on a mapping to switch to it. Create a new mapping with
+ the + button or by typing ⌘N. Delete the current mapping with
+ the - button or ⌘⌫. Rename a mapping by double-clicking on it or
+ pressing Return while it's selected.
+ </p>
+
+ <p>
+ You can also switch mappings with the <b>Mappings</b> menu, with
+ Enjoyable's dock menu, or by pressing ⌘1 through ⌘9.
+ </p>
+
+ <p>
+ Switching mappings can also be mapped to an input. Select the
+ input you wish to use and then choose a mapping from
+ the <b>Switch to mapping</b> option. For example, you could have
+ one mapping for a game's menu and another for its main screen
+ and switch between them in-game without returning to Enjoyable.
+ </p>
+
+ <h3><a name="automatic"></a>Automatic Switching</h3>
+ <p>
+ If you name a mapping after an application it will be
+ automatically chosen when you switch to that application. The
+ name of an application is usually shown on the dock when you
+ hover your mouse over it. If you don't know the name of the
+ application you want to create a mapping for, create a mapping
+ with the name <kbd>@Application</kbd> (note the <kbd>@</kbd> at
+ the start). The mapping will automatically be renamed for the
+ next application you switch to while it's enabled.
+ </p>
+
+ <h3><a name="sharing"></a>Import and Export</h3>
+ <p>
+ Mappings can be exported and shared with other people. To export
+ your current mapping choose <b>Mappings > Export…</b> or press ⌘S and
+ save the file. This file can be shared with anyone; it doesn't
+ contain any personal information other than the product IDs of
+ the input devices you used and what you mapped them to.
+ </p>
+ <p>
+ To import a mapping choose <b>Mappings > Import…</b> or press
+ ⌘O and select the file you want to import. Mapping files end
+ with <kbd>.enjoyable</kbd> (the default), <kbd>.json</kbd>,
+ or <kbd>.txt</kbd>. If the imported mapping conflicts with one
+ you already made, you can choose to merge the two mappings or
+ create a new one with the same name.
+ </p>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Mouse Events</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <link href="../sty/default.css"
+ rel="stylesheet"
+ type="text/css"
+ media="all"/>
+ </head>
+
+ <body>
+ <a name="mouse"></a>
+
+ <div id="navbox">
+ <div id="navleftbox">
+ <a class="navlink_left"
+ href="help:anchor='home' bookID='com.yukkurigames.Enjoyable.help'">
+ Home
+ </a>
+ </div>
+ </div>
+
+ <div id="headerbox">
+ <div id="iconbox">
+ <img id="iconimg"
+ src="../gfx/Icon.png"
+ alt="Icon"
+ height="32" width="32"/>
+ </div>
+ <h1>Mouse Events</h1>
+ </div>
+
+ <p>
+ You can use Enjoyable to map input to mouse buttons, moving, and
+ scrolling.
+ </p>
+
+ <h3>Movement</h3>
+ <p>
+ Select the direction you'd like the input to move the
+ mouse. Adjust the movement speed using the slider underneath. If
+ you are mapping an analog input then this is the maximum speed;
+ for a button it's a constant speed.
+ </p>
+ <p>
+ The speed is set independently for each input. You can have
+ faster horizontal movement than vertical movement, or map one
+ set of inputs to a fast speed and another set to a slow
+ speed.
+ </p>
+
+ <h3>Buttons</h3>
+ <p>
+ Select the mouse button you'd like the input to simulate.
+ </p>
+
+ <h3><a name="scrolling"></a>Scrolling</h3>
+ <p>
+ Simulated scrolling can be continuous like the scrolling
+ gestures on a trackpad, or discrete like a mouse wheel that
+ clicks as you spin it.
+ </p>
+ <p>
+ To use <em>continuous scrolling</em> choose ↑ or ↓. Use the
+ slider underneath them to adjust the scrolling speed. If you are
+ mapping an analog input then this is the maximum speed; for a
+ button it's a constant speed.
+ <p>
+ To use <em>discrete scrolling</em> choose ⤒ or ⤓. The input
+ will trigger scrolling up or down by exactly one line and stop,
+ regardless of how long you hold the button down or how far
+ you move an analog input.
+ </p>
+ <p>
+ The arrows indicate the direction you would spin a mouse wheel
+ or move your fingers. Depending on settings this may mean you
+ need to choose a down arrow to scroll up and vice versa. You can
+ also change this globally in <b> > System Preferences… >
+ Mouse</b> and <b> > System Preferences… > Trackpad</b>.
+ </p>
+
+ <h3><a name="mouseissues"></a>Known Issues</h3>
+ <p>
+ Mouse events are more fragile than keyboard ones. While Enjoyble
+ will work fine for most games, regular OS X (Cocoa) applications
+ require specially formatted mouse events. Features such as
+ click-and-drag or double-clicking will not work correctly, so
+ many applications will behave incorrectly if driven by an
+ Enjoyable simulated mouse.
+ </p>
+ <p>
+ If you find a non-Cocoa application that has problems with
+ Enjoyable's mouse
+ support <a href="https://github.com/joewreschnig/enjoyable/issues">please
+ file a ticket in the issue tracker</a>.
+ </p>
+
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Troubleshooting</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <link href="../sty/default.css"
+ rel="stylesheet"
+ type="text/css"
+ media="all"/>
+ </head>
+
+ <body>
+ <a name="problems"></a>
+
+ <div id="navbox">
+ <div id="navleftbox">
+ <a class="navlink_left"
+ href="help:anchor='home' bookID='com.yukkurigames.Enjoyable.help'">
+ Home
+ </a>
+ </div>
+ </div>
+
+ <div id="headerbox">
+ <div id="iconbox">
+ <img id="iconimg"
+ src="../gfx/Icon.png"
+ alt="Icon"
+ height="32" width="32"/>
+ </div>
+ <h1>Troubleshooting</h1>
+ </div>
+
+ <h3>
+ <a name="unavailable"></a>
+ When I start Enjoyable, it says "Input devices are unavailable"
+ </h3>
+ <p>
+ This happens if Enjoyable is refused access to your input
+ devices by Mac OS X. This usually happens if another application
+ has requested exclusive access to them. Try quitting any other
+ applications using your input devices. If that doesn't work, try
+ disconnecting and reconnecting the device, then restarting
+ Enjoyable. If it still doesn't work you may need to reboot.
+ </p>
+
+ <h3>
+ <a name="noswitch"></a>
+ Enjoyable never switches to my application mapping
+ </h3>
+ <p>
+ Make sure it matches the name of the application exactly. If you
+ still have trouble, name the mapping <kbd>@Application</kbd> and
+ switch back to have Enjoyable try to deduce the correct name
+ automatically.
+ </p>
+
+ <h3>
+ Mouse clicks and drags don't work
+ <a name="brokenmouse"></a>
+ </h3>
+ <p>
+ This is a known issue with Cocoa applications, as they require
+ more specially-crafted mouse events. We hope to fix it in a
+ future version.
+ </p>
+ </body>
+</html>
--- /dev/null
+body {\r font-size: 8pt;\r font-family: "Lucida Grande", Arial, sans-serif;\r line-height: 12pt;\r text-decoration: none;\r margin-right: 1em;\r margin-left: 1em;\r}\r\r#navbox { \r background-color: #f2f2f2; \r position: fixed;\r top: 0; \r left: 0; \r width: 100%; \r height: 1.5em; \r float: left; \r border-bottom: 1px solid #bfbfbf\r}\r\r#navleftbox { \r position: absolute; \r top: 1px; \r left: 15px \r}\r\r#navrightbox { \r background-color: #f2f2f2; \r padding-right: 25px; \r float: right; \r padding-bottom: 1px; \r border-left: 1px solid #bfbfbf\r}\r\r#navbox a {\r font-size: 8pt;\r color: #666;\r font-weight: normal;\r margin: -9px 0 -6px;\r}\r\r#headerbox {\r margin-top: 36px;\r padding-right: 6px;\r margin-bottom: 2em;\r}\r\r#iconbox {\r float: left;\r}\r\rh1 {\r margin-left: 40px;\r width: 88%;\r font-size: 15pt;\r line-height: 15pt;\r font-weight: bold;\r padding-top: 6px;\r margin-bottom: 0;\r}\r\rh2 {\r font-size: 11pt;\r line-height: 12pt;\r font-weight: bold;\r color: black;\r margin-top: 0;\r margin-bottom: 11px;\r}\r\rh3 {\r font-size: 8pt;\r font-weight: bold;\r letter-spacing: 0.1em;\r line-height: 8pt;\r color: #666;\r margin-top: 1em;\r margin-bottom: 0px;\r padding-bottom: 0.5em;\r}\r\rp {\r margin-left: 0px;\r margin-top: 0px;\r margin-bottom: 0.5em;\r}\r\rul {\r margin-left: 2em;\r margin-top: 6px;\r margin-bottom: 0px;\r padding-left: 0px;\r}\r\rli {\r margin-left: 0px;\r}\r\ra {\r color: #778fbd;\r font-size: 9pt;\r font-weight: bold;\r text-decoration: none;\r}\r\ra:hover {\r text-decoration: underline;\r}\r\r.weblink {\r color: #666;\r font-weight: normal;\r}\r
\ No newline at end of file
<plist version="1.0">
<dict>
<key>CFBundleHelpBookName</key>
- <string>Enjoyable Help</string>
+ <string>com.yukkurigames.Enjoyable.help</string>
<key>CFBundleHelpBookFolder</key>
- <string>Enjoyable Help</string>
+ <string>Help</string>
<key>NSSupportsAutomaticTermination</key>
<string>YES</string>
<key>NSSupportsSuddenTermination</key>