You can map font cursors to correspond to a platform's built-in cursors by sending mapFontCursor:platformCursor: to a CgDisplay object. In the following example, the symbol #wait is defined as a key that maps to the current platform's wait cursor. You can use any object as a key. The cursor is created using createFontCursor: and displayed in a window. Note that constants from the PlatformConstants pool dictionary are used.
| window platform key cursor | window := self shell window. "Determine what the current platform is and set the constant name specifying the platform's wait cursor." platform := System subsystemType: 'CG'. (#('WIN' 'WIN32s' 'WIN-NT') includes: platform) ifTrue: [key := 'IdcWait']. platform = 'PM' ifTrue: [key := 'SptrWait']. platform = 'X' ifTrue: [key := 'XCWatch'].
"Look up the constant and define a font cursor that maps to the platform's wait cursor." window display mapFontCursor: #wait platformCursor: (PlatformConstants at: key asPoolKey). "Create a font cursor which maps to the platform's wait cursor." cursor := window display createFontCursor: #wait.
"Display the cursor." window defineCursor: cursor. (Delay forSeconds: 5) wait. window undefineCursor. "Free the cursor." cursor freeCursor.