Wait cursor implementation

A wait (or busy) cursor (e.g. hour-glass), which the user has the option of enabling, has been incorporated to inform users that some tasks are taking longer than usual to reach completion. If the task takes longer than 0.5 second the wait cursor will appear. The default setting is to have the wait cursor enabled.

For users who have modern fast computers and don't usually experience heavy demands on their computer's speed from background programs, the wait cursor is likely to be activated only for the long task associated with scrambling cubes of large size. Initially the wait cursor always switched on when it should but didn't always switch off properly, although in such instances it behaved like the normal cursor and the program functioned properly. To overcome this initial unreliability problem, the state of the cursor is checked at entry for every action performed by the event queue. If the wait cursor is detected on entry (ideally this should never happen but sometimes it does), it is replaced with the default (pointer) cursor. After this change, the programmer has not observed any problems with the wait cursor. The checking of the wait cursor does impose a small time penalty for every call on the event queue. That is probably not an issue for the Unravel program but if any user wants to avoid this time penalty, the wait cursor can be disabled.

The wait cursor can be enabled/disabled via the Program Settings dialog.