* Editing and Calculations
Edits made to traits in the Edit Traits dialog that are supposed to create new links between traits, such as changes to default() or needs(), were not prompting those links to be created. A full Recalculate All (F5) would update everything correctly, but just changing something that is newly defaulted from, for example, wouldn’t flow the change through as expected. That should now be fixed; GCA will refresh linkages related to edited traits after the Edit Traits dialog is closed.
* Unified View Trait boxes
The Options menu from the gear button has been simplified a bit, as some options are just available from a More Options selection that launches an Options dialog.
The trait boxes can now assign a function to right-clicking the gear button. This function can be one of these options: do nothing (the default), open the Options menu (what left-clicking does), or launch the traits dialog. This should improve usability for tablets and for those who have trouble double-clicking the button when that option is set. This is available through More Options on the gear menu.
I’ve also added an option to swap the left-click and right-click functions, so that you can have right-click be the Options menu and left-click do one of the other things. If you also want to have double-click to launch the Traits dialog enabled, that must always be double left-clicking.
Finally, I added an option to allow mimicing the gear button clicking behavior across the entire title bar. This means right-clicking or left-clicking on the ‘Skills’ header area will work the same as clicking on the gear button, although the area won’t highlight like the button does (and double-clicking is not handled). The title area does not include the column heads, since those are clicked on to change sorting. (To be consistent across Unified View, this option should be available for other boxes, also, but it is not at this time.)
Since each trait box remembers its own individual settings, you’ll unfortunately have to set the desired options individually for each one.
* Called Plugins
I have created a new class of plugin, the Called Plugin using the ICalledPlugin Interface, which doesn’t do anything until you launch it from the Tools > Launch submenu. Authors of these plugins will have to manage their own UI if needed, which does add some complexity. GCA does provide a SheetOptionsManager for persisting user settings, however.
I have created an example of this kind of plugin that uses a form to interact with the user, it is cleverly called ‘CalledPluginExample’. Note that such a plugin must instantiate the form independently as part of its normal operation; DO NOT use the form itself as the plugin. Get the example plugin at my GCA5 blog here: https://www.misersoft.com/gca5/?page_id=1108
Most of the required interface isn’t actually needed for a form-less plugin; structurally that’s pretty simple: Start gets called, do some work there, raise the ShutDown event at the end.
For sheet options for this type of plugin, GCA calls CreateOptions to create them, and will call SetOptions when it launches the plugin, before it calls Start. If you use the ShowOptions event to show the user an Options dialog, GCA will also call SetOptions after the user is done with the Options dialog, but it will not call Start again. This kind of plugin does not have sheet option profiles available, so all options saved and loaded by GCA will be stored under the PluginName alone.
Note that these plugins can sit around and work over time. If you launch a window, for example, the window is non-modal and can be refreshed and interacted with alongside GCA. The example plugin does this to some extent, updating the interface as traits and characters change.
* Accessibilty: Point Summary dialog
I have created a new dialog, available from the Character menu. This Point Summary dialog simply shows the point summary information in text format as a serious of text lines. Since the points bar at the bottom of the main window is not really accessible to screen readers, adding this dialog seemed like the best route to making that information available.
* Accessibilty: MiserCheckedListBox
The custom checked listbox used in various places, such as in the Choose Multi dialog, did not allow you to check the selected item using the spacebar. That is fixed.
In addition, the list did not correctly return any useful information for the accessibility text, which made using the listbox impossible for screen readers. That is now fixed.
In addition to adding useful text returns, the list has been updated to rebuild when the state of a checkbox changes, so that the returned text will remain correct (and the reader should re-read the changed state; at least Windows Reader does).
* Accessibilty: ChooseMulti dialog
In addition to the changes resulting from updating the MiserCheckedListBox, the hint bar at the bottom will now return accessibility text reflecting the current status of the desired selections, so tabbing to it will provide feedback on what’s still required, if anything.
* Accessibilty: Campaign Log
Fixed the return text for the button that changes the order of the entries in the All Log Entries list.
Added actual text returns for the entries in the All Log Entries list.
In the Points & Money Earned pane, added explicit names for the various fields, and fixed the tab order.
Added explicit names for the fields in the Selected Log Entry pane.
Changed returns for the Search, Add, and Delete buttons.
Adjusted tab order.
The text of the log entries in the list would get repainted when changes were made, but the Accessible text returned to a screen reader would not be updated unless the list was rebuilt. I have adjusted the refresh process so that the list will get rebuilt. This may result in the position of the entry within the list changing when editing a log entry in the edit area, but the selected list entry should still remain visible and selected in the list.
* Accessibilty: Classic View
Added button names for the buttons in the filter panes for the Classic View standard trait panes.
As with many other things that use listboxes, the text for traits would not get updated for screen readers unless the item itself was replaced, even though it appeared correctly on-screen. That should now be fixed for the various trait lists in Classic View.
* Accessibilty: Loadout Manager
Added column names for the Item, Quantity, and Weight columns in the grid.
In the Acitve Loadout pane, changed the reported text for the fields of Encumbrance Level and Load Weight to actually report “Encumbrance Level” and “Load Weight”.
The gear menu button should now report “Gear menu”.
Changed the tab order a bit.