enjoyable.git
11 years agoControls to reorder the mapping list.
Joe Wreschnig [Wed, 6 Mar 2013 22:53:29 +0000 (23:53 +0100)]
Controls to reorder the mapping list.

11 years agoDon't need a third copy of the license floating around.
Joe Wreschnig [Wed, 6 Mar 2013 19:18:26 +0000 (20:18 +0100)]
Don't need a third copy of the license floating around.

11 years agoFix bad Markdown.
Joe Wreschnig [Wed, 6 Mar 2013 19:17:48 +0000 (20:17 +0100)]
Fix bad Markdown.

11 years agoUpdate README.
Joe Wreschnig [Wed, 6 Mar 2013 19:15:14 +0000 (20:15 +0100)]
Update README.

11 years agoLess crap in the dock menu.
Joe Wreschnig [Wed, 6 Mar 2013 18:53:27 +0000 (19:53 +0100)]
Less crap in the dock menu.

11 years agoFix space after link.
Joe Wreschnig [Wed, 6 Mar 2013 18:53:06 +0000 (19:53 +0100)]
Fix space after link.

11 years agoFixed signedness.
Joe Wreschnig [Wed, 6 Mar 2013 18:52:28 +0000 (19:52 +0100)]
Fixed signedness.

11 years agoIgnore DS_Store litter.
Joe Wreschnig [Wed, 6 Mar 2013 18:52:09 +0000 (19:52 +0100)]
Ignore DS_Store litter.

11 years agoAdd missing makefile.
Joe Wreschnig [Wed, 6 Mar 2013 18:21:25 +0000 (19:21 +0100)]
Add missing makefile.

11 years agoMove help files around. Build index correctly.
Joe Wreschnig [Wed, 6 Mar 2013 17:43:28 +0000 (18:43 +0100)]
Move help files around. Build index correctly.

11 years agoMove copyright license to help book.
Joe Wreschnig [Wed, 6 Mar 2013 16:06:52 +0000 (17:06 +0100)]
Move copyright license to help book.

11 years agoTweak matrix layout to give more space for larger segmented controls. Better split...
Joe Wreschnig [Wed, 6 Mar 2013 15:10:29 +0000 (16:10 +0100)]
Tweak matrix layout to give more space for larger segmented controls. Better split view window resize behavior.

11 years agoFinish first draft of manual.
Joe Wreschnig [Wed, 6 Mar 2013 14:12:27 +0000 (15:12 +0100)]
Finish first draft of manual.

11 years agoSupport magic @Application token for automatic mapping names. Fall back to the bundle...
Joe Wreschnig [Wed, 6 Mar 2013 14:12:07 +0000 (15:12 +0100)]
Support magic @Application token for automatic mapping names. Fall back to the bundle name if no localized name is available.

11 years agoMouse mode toggle creates really confusing situations right now, disable it.
Joe Wreschnig [Wed, 6 Mar 2013 12:23:09 +0000 (13:23 +0100)]
Mouse mode toggle creates really confusing situations right now, disable it.

11 years agoImproved analog support for scrolling, and allow speed adjustments.
Joe Wreschnig [Wed, 6 Mar 2013 11:41:25 +0000 (12:41 +0100)]
Improved analog support for scrolling, and allow speed adjustments.

11 years agoChange NJInputAnalog so magnitudes of subactions are always positive (e.g. -1 magnitu...
Joe Wreschnig [Wed, 6 Mar 2013 10:44:33 +0000 (11:44 +0100)]
Change NJInputAnalog so magnitudes of subactions are always positive (e.g. -1 magnitude is 1 on low 0 on high, rather than -1 on low and high). Change NSInputs so buttons have a magnitude 1 when pressed, allowing them to also control the mouse. Allow mouse movement speed control.

11 years agoAdd all major sections of help.
Joe Wreschnig [Wed, 6 Mar 2013 00:48:52 +0000 (01:48 +0100)]
Add all major sections of help.

11 years agoStart help book. Tweak UI to deal with issues discovered trying to explain it.
Joe Wreschnig [Wed, 6 Mar 2013 00:04:31 +0000 (01:04 +0100)]
Start help book. Tweak UI to deal with issues discovered trying to explain it.

11 years agoSubscribe the output controller to notifications directly. Application delegate has...
Joe Wreschnig [Tue, 5 Mar 2013 01:08:03 +0000 (02:08 +0100)]
Subscribe the output controller to notifications directly. Application delegate has no more need to track the output controller.

11 years agoAvoid repeating serialization codes.
Joe Wreschnig [Tue, 5 Mar 2013 00:56:13 +0000 (01:56 +0100)]
Avoid repeating serialization codes.

11 years agoSupport sudden and automatic termination.
Joe Wreschnig [Tue, 5 Mar 2013 00:45:48 +0000 (01:45 +0100)]
Support sudden and automatic termination.

11 years agoAdd some categories to better handle menus with represented objects, then use them...
Joe Wreschnig [Mon, 4 Mar 2013 22:00:21 +0000 (23:00 +0100)]
Add some categories to better handle menus with represented objects, then use them for simpler menu handling.

11 years agoTweak toolbar icons.
Joe Wreschnig [Mon, 4 Mar 2013 22:00:02 +0000 (23:00 +0100)]
Tweak toolbar icons.

11 years agoRemove mappingsChanged with a notification. MappingsController no longer needs to...
Joe Wreschnig [Mon, 4 Mar 2013 15:46:54 +0000 (16:46 +0100)]
Remove mappingsChanged with a notification. MappingsController no longer needs to know about the app delegate.

11 years agoTurn popover activation button 'on' when the popover is up.
Joe Wreschnig [Mon, 4 Mar 2013 15:17:59 +0000 (16:17 +0100)]
Turn popover activation button 'on' when the popover is up.

11 years agoGive accurate names to most of the items in the nib. Tweak button appearance on the...
Joe Wreschnig [Mon, 4 Mar 2013 15:01:38 +0000 (16:01 +0100)]
Give accurate names to most of the items in the nib. Tweak button appearance on the popover to resemble e.g. System Preferences lists with add/remove.

11 years agoFix old method of unsetting field.
Joe Wreschnig [Mon, 4 Mar 2013 14:13:34 +0000 (15:13 +0100)]
Fix old method of unsetting field.

11 years agoFix old check for unset field.
Joe Wreschnig [Mon, 4 Mar 2013 13:54:09 +0000 (14:54 +0100)]
Fix old check for unset field.

11 years agoUse represented objects rather than index hackery. Remove the mapping name from the...
Joe Wreschnig [Mon, 4 Mar 2013 13:47:56 +0000 (14:47 +0100)]
Use represented objects rather than index hackery. Remove the mapping name from the output title, since it's always on-screen now.

11 years agoFix mismatched serialization code.
Joe Wreschnig [Mon, 4 Mar 2013 13:43:51 +0000 (14:43 +0100)]
Fix mismatched serialization code.

11 years agoSignal mappings menu entry by a tag, not a check for a separator. Remove dead code.
Joe Wreschnig [Mon, 4 Mar 2013 13:06:53 +0000 (14:06 +0100)]
Signal mappings menu entry by a tag, not a check for a separator. Remove dead code.

11 years agoRework toolbar UI. No more drawer, use a popover. No more weird toggle button, use...
Joe Wreschnig [Mon, 4 Mar 2013 12:52:00 +0000 (13:52 +0100)]
Rework toolbar UI. No more drawer, use a popover. No more weird toggle button, use a segmented control. Swap sides.

11 years agoRename the application delegate, and hopefully catch the last vestiges of the old...
Joe Wreschnig [Sun, 3 Mar 2013 22:49:27 +0000 (23:49 +0100)]
Rename the application delegate, and hopefully catch the last vestiges of the old names.

11 years agoBig rename part 3: 'target' to 'output'.
Joe Wreschnig [Sun, 3 Mar 2013 21:37:54 +0000 (22:37 +0100)]
Big rename part 3: 'target' to 'output'.

11 years agoBig rename part 2: 'config' etc. to 'mapping.
Joe Wreschnig [Sun, 3 Mar 2013 21:08:41 +0000 (22:08 +0100)]
Big rename part 2: 'config' etc. to 'mapping.

11 years agoBig rename part 1: 'action' to 'input'.
Joe Wreschnig [Sun, 3 Mar 2013 20:42:59 +0000 (21:42 +0100)]
Big rename part 1: 'action' to 'input'.

11 years agoPublish activated/deactivated as notifications.
Joe Wreschnig [Sun, 3 Mar 2013 19:56:04 +0000 (20:56 +0100)]
Publish activated/deactivated as notifications.

11 years agoRewrite KeyInputTextView into NJKeyInputField. New class communicates using a proper...
Joe Wreschnig [Sun, 3 Mar 2013 14:24:36 +0000 (15:24 +0100)]
Rewrite KeyInputTextView into NJKeyInputField. New class communicates using a proper delegate, standard property names, fixes more bugs in UI edge cases, allow Alt+Escape to clear the field, support modified virtual keys usefully.

11 years agoImplement equality checks for Targets. Don't consider equal targets as conflicting...
Joe Wreschnig [Sun, 3 Mar 2013 12:57:46 +0000 (13:57 +0100)]
Implement equality checks for Targets. Don't consider equal targets as conflicting when importing.

11 years agoPost active mapping changes through notification center rather than to the applicatio...
Joe Wreschnig [Sat, 2 Mar 2013 20:53:01 +0000 (21:53 +0100)]
Post active mapping changes through notification center rather than to the application delegate directly. Don't listen for application switch notifications unless the mappings are active.

11 years agoFormal protocol for the interface shared between Joysticks and JSActions, use new...
Joe Wreschnig [Sat, 2 Mar 2013 12:33:11 +0000 (13:33 +0100)]
Formal protocol for the interface shared between Joysticks and JSActions, use new safer types elsewhere.

11 years agoHarden importing.
Joe Wreschnig [Sat, 2 Mar 2013 11:24:57 +0000 (12:24 +0100)]
Harden importing.

11 years agoNicer function to present the error.
Joe Wreschnig [Sat, 2 Mar 2013 02:51:36 +0000 (03:51 +0100)]
Nicer function to present the error.

11 years agoI had no idea you could use class property access like this it's the best thing ever.
Joe Wreschnig [Sat, 2 Mar 2013 02:38:58 +0000 (03:38 +0100)]
I had no idea you could use class property access like this it's the best thing ever.

11 years agoUse a sheet rather than a dialog for some parts of import/export.
Joe Wreschnig [Sat, 2 Mar 2013 02:07:13 +0000 (03:07 +0100)]
Use a sheet rather than a dialog for some parts of import/export.

11 years agoRemove unused field.
Joe Wreschnig [Fri, 1 Mar 2013 19:28:14 +0000 (20:28 +0100)]
Remove unused field.

11 years agoShow HID error as a sheet so the main window still appears.
Joe Wreschnig [Fri, 1 Mar 2013 19:28:06 +0000 (20:28 +0100)]
Show HID error as a sheet so the main window still appears.

11 years agoRemove printf.
Joe Wreschnig [Fri, 1 Mar 2013 19:15:00 +0000 (20:15 +0100)]
Remove printf.

11 years agoUse ellipses, not ....
Joe Wreschnig [Fri, 1 Mar 2013 19:11:04 +0000 (20:11 +0100)]
Use ellipses, not ....

11 years agoAnalog mouse scrolling.
Joe Wreschnig [Fri, 1 Mar 2013 18:58:26 +0000 (19:58 +0100)]
Analog mouse scrolling.

11 years agoRemove 32 bit build.
Joe Wreschnig [Fri, 1 Mar 2013 18:48:29 +0000 (19:48 +0100)]
Remove 32 bit build.

11 years agoMore compiler warnings on. Make all properties nonatomic.
Joe Wreschnig [Fri, 1 Mar 2013 17:52:38 +0000 (18:52 +0100)]
More compiler warnings on. Make all properties nonatomic.

11 years agoSimplify config removal since it's always the active config removed.
Joe Wreschnig [Fri, 1 Mar 2013 17:41:58 +0000 (18:41 +0100)]
Simplify config removal since it's always the active config removed.

11 years agoSave after deleting a config. Reset target to no-op when deleting its config, rather...
Joe Wreschnig [Fri, 1 Mar 2013 17:11:14 +0000 (18:11 +0100)]
Save after deleting a config. Reset target to no-op when deleting its config, rather than to the default config.

11 years agoFix incorrect config list when there are duplicate names.
Joe Wreschnig [Fri, 1 Mar 2013 17:01:48 +0000 (18:01 +0100)]
Fix incorrect config list when there are duplicate names.

11 years agoClean up some comments.
Joe Wreschnig [Fri, 1 Mar 2013 16:28:08 +0000 (17:28 +0100)]
Clean up some comments.

11 years agoTweak some labels.
Joe Wreschnig [Fri, 1 Mar 2013 16:14:35 +0000 (17:14 +0100)]
Tweak some labels.

11 years agoImprove size in a number of pathological cases.
Joe Wreschnig [Fri, 1 Mar 2013 15:23:25 +0000 (16:23 +0100)]
Improve size in a number of pathological cases.

11 years agoFix up copyright notices.
Joe Wreschnig [Fri, 1 Mar 2013 15:02:19 +0000 (16:02 +0100)]
Fix up copyright notices.

11 years agoRe-import exported files.
Joe Wreschnig [Fri, 1 Mar 2013 14:51:55 +0000 (15:51 +0100)]
Re-import exported files.

11 years agoAllow JSON export of configurations.
Joe Wreschnig [Fri, 1 Mar 2013 12:59:58 +0000 (13:59 +0100)]
Allow JSON export of configurations.

11 years agoAdd key equivalents for switching configurations.
Joe Wreschnig [Fri, 1 Mar 2013 12:59:33 +0000 (13:59 +0100)]
Add key equivalents for switching configurations.

11 years agoRemove accidentally-committed file.
Joe Wreschnig [Fri, 1 Mar 2013 02:04:33 +0000 (03:04 +0100)]
Remove accidentally-committed file.

11 years agoRename from Enjoy/Enjoy2 to 'Enjoyable'. While I'm mucking in the project file, enabl...
Joe Wreschnig [Fri, 1 Mar 2013 02:03:51 +0000 (03:03 +0100)]
Rename from Enjoy/Enjoy2 to 'Enjoyable'. While I'm mucking in the project file, enable a bunch of warnings and fixes for those warnings.

11 years agoMove logic into messages rather than directly in the callback functions.
Joe Wreschnig [Fri, 1 Mar 2013 01:27:59 +0000 (02:27 +0100)]
Move logic into messages rather than directly in the callback functions.

11 years agoAllow clicking on the key field directly.
Joe Wreschnig [Thu, 28 Feb 2013 23:38:59 +0000 (00:38 +0100)]
Allow clicking on the key field directly.

11 years agoFix a variety of issues with incorrect / unexpected / unfriendly first responder...
Joe Wreschnig [Thu, 28 Feb 2013 23:32:16 +0000 (00:32 +0100)]
Fix a variety of issues with incorrect / unexpected / unfriendly first responder status.

11 years agoClean up a bunch of properties; remove unused ones, use automatic ones where possible...
Joe Wreschnig [Thu, 28 Feb 2013 21:11:53 +0000 (22:11 +0100)]
Clean up a bunch of properties; remove unused ones, use automatic ones where possible, bypass them internally for serialization for speed.

11 years agoBetter constructor for Config.
Joe Wreschnig [Thu, 28 Feb 2013 20:42:23 +0000 (21:42 +0100)]
Better constructor for Config.

11 years agoFix memory leak.
Joe Wreschnig [Thu, 28 Feb 2013 19:33:46 +0000 (20:33 +0100)]
Fix memory leak.

11 years agoFix names while I still can.
Joe Wreschnig [Thu, 28 Feb 2013 19:20:55 +0000 (20:20 +0100)]
Fix names while I still can.

11 years agoThis isn't C++.
Joe Wreschnig [Thu, 28 Feb 2013 19:07:42 +0000 (20:07 +0100)]
This isn't C++.

11 years agoThis is not the dead zone that needs to be configurable.
Joe Wreschnig [Thu, 28 Feb 2013 19:05:44 +0000 (20:05 +0100)]
This is not the dead zone that needs to be configurable.

11 years agoFix analog axis scaling equation.
Joe Wreschnig [Thu, 28 Feb 2013 19:03:47 +0000 (20:03 +0100)]
Fix analog axis scaling equation.

11 years agoIndex hat switch names. Remove JSAction index properties entirely, once the name...
Joe Wreschnig [Thu, 28 Feb 2013 18:28:34 +0000 (19:28 +0100)]
Index hat switch names. Remove JSAction index properties entirely, once the name is generated they're not necessary.

11 years agoFix inverted logic.
Joe Wreschnig [Thu, 28 Feb 2013 18:25:33 +0000 (19:25 +0100)]
Fix inverted logic.

11 years agoShow an error message if opening input devices fail. Move real vs. configuration...
Joe Wreschnig [Thu, 28 Feb 2013 18:02:21 +0000 (19:02 +0100)]
Show an error message if opening input devices fail. Move real vs. configuration state onto JoystickController.

11 years agoClean up save/restore. Write preferences immediately but continue relying on automati...
Joe Wreschnig [Thu, 28 Feb 2013 17:29:55 +0000 (18:29 +0100)]
Clean up save/restore. Write preferences immediately but continue relying on automatic/exit flush for disk persistence. Remember active configuration on exit.

11 years agoFix case where quick axis movements could create duplicate running targets.
Joe Wreschnig [Thu, 28 Feb 2013 16:28:29 +0000 (17:28 +0100)]
Fix case where quick axis movements could create duplicate running targets.

11 years agoClean up TargetController formatting and public API.
Joe Wreschnig [Thu, 28 Feb 2013 15:16:29 +0000 (16:16 +0100)]
Clean up TargetController formatting and public API.

11 years agoReset target settings in UI when switching target types.
Joe Wreschnig [Thu, 28 Feb 2013 14:49:40 +0000 (15:49 +0100)]
Reset target settings in UI when switching target types.

11 years agoOnly refocus key input for empty/key targets.
Joe Wreschnig [Thu, 28 Feb 2013 14:01:17 +0000 (15:01 +0100)]
Only refocus key input for empty/key targets.

11 years agoReplace hacky target stringification with structured serialization.
Joe Wreschnig [Thu, 28 Feb 2013 13:44:41 +0000 (14:44 +0100)]
Replace hacky target stringification with structured serialization.

11 years agoRemove project headers from the prefix header; having everything in the prefix header...
Joe Wreschnig [Thu, 28 Feb 2013 13:01:29 +0000 (14:01 +0100)]
Remove project headers from the prefix header; having everything in the prefix header file defeats the point of it.

11 years agoUse a weak reference for TargetConfig configurations to avoid a circular reference...
Joe Wreschnig [Thu, 28 Feb 2013 12:46:41 +0000 (13:46 +0100)]
Use a weak reference for TargetConfig configurations to avoid a circular reference, and to auto-nil them when the chosen config is deleted.

11 years agoClean up manual (previously 'neutral') vs. automatic (i.e. process-driven) configurat...
Joe Wreschnig [Thu, 28 Feb 2013 01:06:53 +0000 (02:06 +0100)]
Clean up manual (previously 'neutral') vs. automatic (i.e. process-driven) configuration switching.

11 years agoActually make it impossible to remove the default configuration. Various other small...
Joe Wreschnig [Thu, 28 Feb 2013 00:32:26 +0000 (01:32 +0100)]
Actually make it impossible to remove the default configuration. Various other small tweaks before I tackle target serialization.

11 years agoRename 'stringify' to 'uid' where it pertains to unique action IDs.
Joe Wreschnig [Thu, 28 Feb 2013 00:08:58 +0000 (01:08 +0100)]
Rename 'stringify' to 'uid' where it pertains to unique action IDs.

11 years agoIndices are for display niceness only, so index them from 1 rather than keep offsetti...
Joe Wreschnig [Wed, 27 Feb 2013 23:34:12 +0000 (00:34 +0100)]
Indices are for display niceness only, so index them from 1 rather than keep offsetting them. Remove SubAction, it's just JSAction now.

11 years agoRemove hardcoded menu item offsets. Remove unused property.
Joe Wreschnig [Wed, 27 Feb 2013 22:56:02 +0000 (23:56 +0100)]
Remove hardcoded menu item offsets. Remove unused property.

11 years agoFix crash when no action is available.
Joe Wreschnig [Wed, 27 Feb 2013 22:54:38 +0000 (23:54 +0100)]
Fix crash when no action is available.

11 years agoJSAction base property should be eweak as it creates a circular reference with base...
Joe Wreschnig [Wed, 27 Feb 2013 17:36:56 +0000 (18:36 +0100)]
JSAction base property should be eweak as it creates a circular reference with base.children.

11 years agoAutomatically trigger/untrigger targets based on setting the 'running' property;...
Joe Wreschnig [Wed, 27 Feb 2013 17:28:05 +0000 (18:28 +0100)]
Automatically trigger/untrigger targets based on setting the 'running' property; set it directly from action activity state. Add action/target magnitudes, usually zero, except for analog sticks.

11 years agoClean up JoystickController. Modernize more Objective-C syntax. Remove direct public...
Joe Wreschnig [Wed, 27 Feb 2013 16:46:43 +0000 (17:46 +0100)]
Clean up JoystickController. Modernize more Objective-C syntax. Remove direct public expose of mouseLoc ivar and use a property. Replace CFRunLoopTimer with a NSTimer and unschedule the timer when nothing needs to run.

11 years agoRename 'subActions' to 'children' to match Joystick property name. Simplify logic...
Joe Wreschnig [Wed, 27 Feb 2013 15:31:32 +0000 (16:31 +0100)]
Rename 'subActions' to 'children' to match Joystick property name. Simplify logic that deals with Joysticks-or-JSActions.

11 years agoChange KeyInputTextView from a TextView to a TextField. Simplifies the nib contents...
Joe Wreschnig [Wed, 27 Feb 2013 01:20:33 +0000 (02:20 +0100)]
Change KeyInputTextView from a TextView to a TextField. Simplifies the nib contents to remove surrounding NSScrollView. Refactor to simplify drawing and clean up properties.

11 years agoRefactor Actions. SubAction is a (mostly) proper JSAction. JSActions have (more)...
Joe Wreschnig [Tue, 26 Feb 2013 23:31:03 +0000 (00:31 +0100)]
Refactor Actions. SubAction is a (mostly) proper JSAction. JSActions have (more) proper constructors.

11 years agoClean-up of Joystick class. Refactor constructor to avoid mandatory 'post-constructor...
Joe Wreschnig [Tue, 26 Feb 2013 21:55:00 +0000 (22:55 +0100)]
Clean-up of Joystick class. Refactor constructor to avoid mandatory 'post-constructor' in populateActions. Fix that the product ID was the vendor ID (this breaks existing configurations but I'm probably going to rename the program at this rate anyway). Standardize on spaces for whitespace rather than a mix of tabs and spaces.

11 years agoSwitch controller/HID bridging to non-retained since the controller lives as long...
Joe Wreschnig [Tue, 26 Feb 2013 21:05:34 +0000 (22:05 +0100)]
Switch controller/HID bridging to non-retained since the controller lives as long as the app delegate. Do not manually open and close HID devices; the HID manager does this and a manual close therefore causes a double-close and crash when a device is removed. Some reformatting, and make the joystick display name a virtual readonly attribute.