key Subroutine

private subroutine key(self, pressed, symbol, modified_symbol, modifier)

A key press (pressed true) or release, as VSG key symbols and modifiers (ASCII for printable keys; vsg/ui/KeyEvent.h).

Type Bound

WindowProxy

Arguments

Type IntentOptional 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)


Calls

proc~~key~~CallsGraph proc~key WindowProxy%key interface~vkf_viewer_key vkf_viewer_key proc~key->interface~vkf_viewer_key

Source Code

    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