class interface ACCELERATOR creation make -- Reset control keys. feature(s) from ACCELERATOR -- Status has_alt: BOOLEAN -- Associated shortcut keys. feature(s) from ACCELERATOR -- Status has_control: BOOLEAN -- Associated shortcut keys. feature(s) from ACCELERATOR -- Status has_shift: BOOLEAN -- Associated shortcut keys. feature(s) from ACCELERATOR -- Status is_key: BOOLEAN -- Is this accelerator based on a virtual key? ensure coherent: Result = not is_character is_character: BOOLEAN -- Is this accelerator based on a character code? ensure coherent: Result = not is_key feature(s) from ACCELERATOR -- Update make -- Reset control keys. feature(s) from ACCELERATOR -- Update reset -- Reset control keys. set_alt -- Add ALT key to shortcut. ensure ok: has_alt set_control -- Add CONTROL key to shortcut. ensure ok: has_control set_shift -- Add SHIFT key to shortcut. ensure ok: has_shift set_character (ch: CHARACTER) -- Associate character with keyboard shortcut. -- (this cancels the associated vkey if any). require case_sensitive: -- character based accelerator is case sensitive ensure registered: char = ch; is_char_accel: is_key set_virtual_key (vk: VIRTUAL_KEY) -- Associate virtual key with keyboard shortcut. -- (this cancels the associated character if any). require ok: vk /= Void ensure keep_reference: vkey = vk; is_vk_accel: is_key end of ACCELERATOR