A key press (pressed true) or release, as VSG key symbols and modifiers (ASCII for printable keys; vsg/ui/KeyEvent.h).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(WindowProxy), | intent(inout) | :: | self | |||
| logical, | intent(in) | :: | pressed |
true: pressed; false: released |
||
| integer, | intent(in) | :: | symbol |
the key without modifiers (VSG's keyBase) |
||
| integer, | intent(in) | :: | modified_symbol |
the key with the modifiers (VSG's keyModified, e.g. 'A') |
||
| integer, | intent(in) | :: | modifier |
the modifier keys held (MOD_* bits) |
subroutine key(self, pressed, symbol, modified_symbol, modifier) class(WindowProxy), intent(inout) :: self logical, intent(in) :: pressed !! true: pressed; false: released integer, intent(in) :: symbol !! the key without modifiers (VSG's keyBase) integer, intent(in) :: modified_symbol !! the key with the modifiers (VSG's keyModified, e.g. 'A') integer, intent(in) :: modifier !! the modifier keys held (MOD_* bits) if (.not. c_associated(self%viewer_)) return if (vkf_viewer_key(self%viewer_, merge(1_c_int, 0_c_int, pressed), int(symbol, c_int), & int(modified_symbol, c_int), int(modifier, c_int)) /= 0) & write(*, '(a)') 'vkframes: key event failed' end subroutine key