2011-03-04 17:50 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)

* contrib/hbxbp/xbpappevent.prg
    + Added: XbpAppEventToQKeyEvent() and XbpAppEventModifier()
  * contrib/hbxbp/xbpgeneric.prg
    + Implemented: PostAppEvent( nEventType, mp1, mp2, oXbp )
      Currently it is implemented for nEventType == xbeP_Keyboard.
This commit is contained in:
Pritpal Bedi
2011-03-05 01:56:00 +00:00
parent c4ce99ef18
commit 730b6467ab
3 changed files with 556 additions and 8 deletions

View File

@@ -16,6 +16,13 @@
The license applies to all entries newer than 2009-04-28.
*/
2011-03-04 17:50 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbxbp/xbpappevent.prg
+ Added: XbpAppEventToQKeyEvent() and XbpAppEventModifier()
* contrib/hbxbp/xbpgeneric.prg
+ Implemented: PostAppEvent( nEventType, mp1, mp2, oXbp )
Currently it is implemented for nEventType == xbeP_Keyboard.
2011-03-04 13:07 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* debian/control
* debian/compat

View File

@@ -519,3 +519,549 @@ FUNCTION XbpQKeyEventToAppEvent( oKeyEvent )
RETURN c
/*----------------------------------------------------------------------*/
FUNCTION XbpAppEventToQKeyEvent( key )
SWITCH( key )
CASE xbeK_ESC
CASE xbeK_SH_ESC
RETURN Qt_Key_Escape
CASE xbeK_ENTER
CASE xbeK_ALT_ENTER
CASE xbeK_CTRL_ENTER
RETURN Qt_Key_Enter
CASE xbeK_TAB
CASE xbeK_SH_TAB
RETURN Qt_Key_Backtab
CASE xbeK_CTRL_TAB
RETURN Qt_Key_Tab
CASE xbeK_BS
CASE xbeK_SH_BS
CASE xbeK_ALT_BS
CASE xbeK_CTRL_BS
RETURN Qt_Key_Backspace
CASE xbeK_INS
CASE xbeK_SH_INS
CASE xbeK_ALT_INS
CASE xbeK_CTRL_INS
RETURN Qt_Key_Insert
CASE xbeK_DEL
CASE xbeK_SH_DEL
CASE xbeK_ALT_DEL
CASE xbeK_CTRL_DEL
RETURN Qt_Key_Delete
CASE xbeK_HOME
CASE xbeK_SH_HOME
CASE xbeK_ALT_HOME
CASE xbeK_CTRL_HOME
CASE xbeK_SH_CTRL_HOME
RETURN Qt_Key_Home
CASE xbeK_END
CASE xbeK_SH_END
CASE xbeK_ALT_END
CASE xbeK_CTRL_END
CASE xbeK_SH_CTRL_END
RETURN Qt_Key_End
CASE xbeK_LEFT
CASE xbeK_SH_LEFT
CASE xbeK_ALT_LEFT
CASE xbeK_CTRL_LEFT
CASE xbeK_SH_CTRL_LEFT
RETURN Qt_Key_Left
CASE xbeK_UP
CASE xbeK_SH_UP
CASE xbeK_ALT_UP
CASE xbeK_CTRL_UP
CASE xbeK_SH_CTRL_UP
RETURN Qt_Key_Up
CASE xbeK_RIGHT
CASE xbeK_SH_RIGHT
CASE xbeK_ALT_RIGHT
CASE xbeK_CTRL_RIGHT
CASE xbeK_SH_CTRL_RIGHT
RETURN Qt_Key_Right
CASE xbeK_DOWN
CASE xbeK_SH_DOWN
CASE xbeK_ALT_DOWN
CASE xbeK_CTRL_DOWN
CASE xbeK_SH_CTRL_DOWN
RETURN Qt_Key_Down
CASE xbeK_PGUP
CASE xbeK_SH_PGUP
CASE xbeK_ALT_PGUP
CASE xbeK_CTRL_PGUP
CASE xbeK_SH_CTRL_PGUP
RETURN Qt_Key_PageUp
CASE xbeK_PGDN
CASE xbeK_SH_PGDN
CASE xbeK_ALT_PGDN
CASE xbeK_CTRL_PGDN
CASE xbeK_SH_CTRL_PGDN
RETURN Qt_Key_PageDown
CASE xbeK_F1
CASE xbeK_SH_F1
CASE xbeK_ALT_F1
CASE xbeK_CTRL_F1
RETURN Qt_Key_F1
CASE xbeK_F2
CASE xbeK_SH_F2
CASE xbeK_ALT_F2
CASE xbeK_CTRL_F2
RETURN Qt_Key_F2
CASE xbeK_F3
CASE xbeK_SH_F3
CASE xbeK_ALT_F3
CASE xbeK_CTRL_F3
RETURN Qt_Key_F3
CASE xbeK_F4
CASE xbeK_SH_F4
CASE xbeK_ALT_F4
CASE xbeK_CTRL_F4
RETURN Qt_Key_F4
CASE xbeK_F5
CASE xbeK_SH_F5
CASE xbeK_ALT_F5
CASE xbeK_CTRL_F5
RETURN Qt_Key_F5
CASE xbeK_F6
CASE xbeK_SH_F6
CASE xbeK_ALT_F6
CASE xbeK_CTRL_F6
RETURN Qt_Key_F6
CASE xbeK_F7
CASE xbeK_SH_F7
CASE xbeK_ALT_F7
CASE xbeK_CTRL_F7
RETURN Qt_Key_F7
CASE xbeK_F8
CASE xbeK_SH_F8
CASE xbeK_ALT_F8
CASE xbeK_CTRL_F8
RETURN Qt_Key_F8
CASE xbeK_F9
CASE xbeK_SH_F9
CASE xbeK_ALT_F9
CASE xbeK_CTRL_F9
RETURN Qt_Key_F9
CASE xbeK_F10
CASE xbeK_SH_F10
CASE xbeK_ALT_F10
CASE xbeK_CTRL_F10
RETURN Qt_Key_F10
CASE xbeK_F11
CASE xbeK_SH_F11
CASE xbeK_ALT_F11
CASE xbeK_CTRL_F11
RETURN Qt_Key_F11
CASE xbeK_F12
CASE xbeK_SH_F12
CASE xbeK_ALT_F12
CASE xbeK_CTRL_F12
RETURN Qt_Key_F12
CASE xbeK_P_ALT_ASTERISK
CASE xbeK_P_CTRL_ASTERISK
RETURN Qt_Key_Asterisk
CASE xbeK_P_ALT_PLUS
CASE xbeK_P_CTRL_PLUS
RETURN Qt_Key_Plus
CASE xbeK_ALT_MINUS
CASE xbeK_P_ALT_MINUS
CASE xbeK_P_CTRL_MINUS
RETURN Qt_Key_Minus
CASE xbeK_P_ALT_SLASH
CASE xbeK_P_CTRL_SLASH
RETURN Qt_Key_Slash
CASE xbeK_CAPS_LOCK
CASE xbeK_SH_CAPS_LOCK
CASE xbeK_ALT_CAPS_LOCK
CASE xbeK_CTRL_CAPS_LOCK
RETURN Qt_Key_CapsLock
CASE xbeK_NUM_LOCK
RETURN Qt_Key_NumLock
CASE xbeK_SCROLL_LOCK
RETURN Qt_Key_ScrollLock
CASE xbeK_SPACE
CASE xbeK_ALT_SPACE
RETURN Qt_Key_Space
CASE xbeK_ALT_EQUALS
RETURN Qt_Key_Equal
CASE xbeK_ALT_0
RETURN Qt_Key_0
CASE xbeK_ALT_1
RETURN Qt_Key_1
CASE xbeK_ALT_2
RETURN Qt_Key_2
CASE xbeK_ALT_3
RETURN Qt_Key_3
CASE xbeK_ALT_4
RETURN Qt_Key_4
CASE xbeK_ALT_5
CASE xbeK_P_ALT_5
CASE xbeK_P_CTRL_5
RETURN Qt_Key_5
CASE xbeK_ALT_6
RETURN Qt_Key_6
CASE xbeK_ALT_7
RETURN Qt_Key_7
CASE xbeK_ALT_8
RETURN Qt_Key_8
CASE xbeK_ALT_9
RETURN Qt_Key_9
CASE xbeK_ALT_A
CASE xbeK_CTRL_A
RETURN Qt_Key_A
CASE xbeK_ALT_B
CASE xbeK_CTRL_B
RETURN Qt_Key_B
CASE xbeK_ALT_C
CASE xbeK_CTRL_C
RETURN Qt_Key_C
CASE xbeK_ALT_D
CASE xbeK_CTRL_D
RETURN Qt_Key_D
CASE xbeK_ALT_E
CASE xbeK_CTRL_E
RETURN Qt_Key_E
CASE xbeK_ALT_F
CASE xbeK_CTRL_F
RETURN Qt_Key_F
CASE xbeK_ALT_G
CASE xbeK_CTRL_G
RETURN Qt_Key_G
CASE xbeK_ALT_H
CASE xbeK_CTRL_H
RETURN Qt_Key_H
CASE xbeK_ALT_I
CASE xbeK_CTRL_I
RETURN Qt_Key_I
CASE xbeK_ALT_J
CASE xbeK_CTRL_J
RETURN Qt_Key_J
CASE xbeK_ALT_K
CASE xbeK_CTRL_K
RETURN Qt_Key_K
CASE xbeK_ALT_L
CASE xbeK_CTRL_L
RETURN Qt_Key_L
CASE xbeK_ALT_M
CASE xbeK_CTRL_M
RETURN Qt_Key_M
CASE xbeK_ALT_N
CASE xbeK_CTRL_N
RETURN Qt_Key_N
CASE xbeK_ALT_O
CASE xbeK_CTRL_O
RETURN Qt_Key_O
CASE xbeK_ALT_P
CASE xbeK_CTRL_P
RETURN Qt_Key_P
CASE xbeK_ALT_Q
CASE xbeK_CTRL_Q
RETURN Qt_Key_Q
CASE xbeK_ALT_R
CASE xbeK_CTRL_R
RETURN Qt_Key_R
CASE xbeK_ALT_S
CASE xbeK_CTRL_S
RETURN Qt_Key_S
CASE xbeK_ALT_T
CASE xbeK_CTRL_T
RETURN Qt_Key_T
CASE xbeK_ALT_U
CASE xbeK_CTRL_U
RETURN Qt_Key_U
CASE xbeK_ALT_V
CASE xbeK_CTRL_V
RETURN Qt_Key_V
CASE xbeK_ALT_W
CASE xbeK_CTRL_W
RETURN Qt_Key_W
CASE xbeK_ALT_X
CASE xbeK_CTRL_X
RETURN Qt_Key_X
CASE xbeK_ALT_Y
CASE xbeK_CTRL_Y
RETURN Qt_Key_Y
CASE xbeK_ALT_Z
CASE xbeK_CTRL_Z
RETURN Qt_Key_Z
CASE xbeK_SHIFT
RETURN Qt_Key_Shift
CASE xbeK_CTRL
RETURN Qt_Key_Control
CASE xbeK_ALT
RETURN Qt_Key_Alt
ENDSWITCH
RETURN key
/*----------------------------------------------------------------------*/
FUNCTION XbpAppEventModifier( key )
SWITCH( key )
CASE xbeK_SH_ESC
RETURN Qt_ShiftModifier
CASE xbeK_ALT_ENTER
RETURN Qt_AltModifier
CASE xbeK_CTRL_ENTER
RETURN Qt_ControlModifier
CASE xbeK_SH_TAB
RETURN Qt_ShiftModifier
CASE xbeK_CTRL_TAB
RETURN Qt_ControlModifier
CASE xbeK_SH_BS
RETURN Qt_ShiftModifier
CASE xbeK_ALT_BS
RETURN Qt_AltModifier
CASE xbeK_CTRL_BS
RETURN Qt_ControlModifier
CASE xbeK_SH_INS
RETURN Qt_ShiftModifier
CASE xbeK_ALT_INS
RETURN Qt_AltModifier
CASE xbeK_CTRL_INS
RETURN Qt_ControlModifier
CASE xbeK_SH_DEL
RETURN Qt_ShiftModifier
CASE xbeK_ALT_DEL
RETURN Qt_AltModifier
CASE xbeK_CTRL_DEL
RETURN Qt_ControlModifier
CASE xbeK_SH_HOME
RETURN Qt_ShiftModifier
CASE xbeK_ALT_HOME
RETURN Qt_AltModifier
CASE xbeK_CTRL_HOME
RETURN Qt_ControlModifier
CASE xbeK_SH_CTRL_HOME
RETURN Qt_ShiftModifier + Qt_ControlModifier
CASE xbeK_SH_END
RETURN Qt_ShiftModifier
CASE xbeK_ALT_END
RETURN Qt_AltModifier
CASE xbeK_CTRL_END
RETURN Qt_ControlModifier
CASE xbeK_SH_CTRL_END
RETURN Qt_ShiftModifier + Qt_ControlModifier
CASE xbeK_SH_LEFT
RETURN Qt_ShiftModifier
CASE xbeK_ALT_LEFT
RETURN Qt_AltModifier
CASE xbeK_CTRL_LEFT
RETURN Qt_ControlModifier
CASE xbeK_SH_CTRL_LEFT
RETURN Qt_ShiftModifier + Qt_ControlModifier
CASE xbeK_SH_UP
RETURN Qt_ShiftModifier
CASE xbeK_ALT_UP
RETURN Qt_AltModifier
CASE xbeK_CTRL_UP
RETURN Qt_ControlModifier
CASE xbeK_SH_CTRL_UP
RETURN Qt_ShiftModifier + Qt_ControlModifier
CASE xbeK_SH_RIGHT
RETURN Qt_ShiftModifier
CASE xbeK_ALT_RIGHT
RETURN Qt_AltModifier
CASE xbeK_CTRL_RIGHT
RETURN Qt_ControlModifier
CASE xbeK_SH_CTRL_RIGHT
RETURN Qt_ShiftModifier + Qt_ControlModifier
CASE xbeK_SH_DOWN
RETURN Qt_ShiftModifier
CASE xbeK_ALT_DOWN
RETURN Qt_AltModifier
CASE xbeK_CTRL_DOWN
RETURN Qt_ControlModifier
CASE xbeK_SH_CTRL_DOWN
RETURN Qt_ShiftModifier + Qt_ControlModifier
CASE xbeK_SH_PGUP
RETURN Qt_ShiftModifier
CASE xbeK_ALT_PGUP
RETURN Qt_AltModifier
CASE xbeK_CTRL_PGUP
RETURN Qt_ControlModifier
CASE xbeK_SH_CTRL_PGUP
RETURN Qt_ShiftModifier + Qt_ControlModifier
CASE xbeK_SH_PGDN
RETURN Qt_ShiftModifier
CASE xbeK_ALT_PGDN
RETURN Qt_AltModifier
CASE xbeK_CTRL_PGDN
RETURN Qt_ControlModifier
CASE xbeK_SH_CTRL_PGDN
RETURN Qt_ShiftModifier + Qt_ControlModifier
CASE xbeK_SH_F1
RETURN Qt_ShiftModifier
CASE xbeK_ALT_F1
RETURN Qt_AltModifier
CASE xbeK_CTRL_F1
RETURN Qt_ControlModifier
CASE xbeK_SH_F2
RETURN Qt_ShiftModifier
CASE xbeK_ALT_F2
RETURN Qt_AltModifier
CASE xbeK_CTRL_F2
RETURN Qt_ControlModifier
CASE xbeK_SH_F3
RETURN Qt_ShiftModifier
CASE xbeK_ALT_F3
RETURN Qt_AltModifier
CASE xbeK_CTRL_F3
RETURN Qt_ControlModifier
CASE xbeK_SH_F4
RETURN Qt_ShiftModifier
CASE xbeK_ALT_F4
RETURN Qt_AltModifier
CASE xbeK_CTRL_F4
RETURN Qt_ControlModifier
CASE xbeK_SH_F5
RETURN Qt_ShiftModifier
CASE xbeK_ALT_F5
RETURN Qt_AltModifier
CASE xbeK_CTRL_F5
RETURN Qt_ControlModifier
CASE xbeK_SH_F6
RETURN Qt_ShiftModifier
CASE xbeK_ALT_F6
RETURN Qt_AltModifier
CASE xbeK_CTRL_F6
RETURN Qt_ControlModifier
CASE xbeK_SH_F7
RETURN Qt_ShiftModifier
CASE xbeK_ALT_F7
RETURN Qt_AltModifier
CASE xbeK_CTRL_F7
RETURN Qt_ControlModifier
CASE xbeK_SH_F8
RETURN Qt_ShiftModifier
CASE xbeK_ALT_F8
RETURN Qt_AltModifier
CASE xbeK_CTRL_F8
RETURN Qt_ControlModifier
CASE xbeK_SH_F9
RETURN Qt_ShiftModifier
CASE xbeK_ALT_F9
RETURN Qt_AltModifier
CASE xbeK_CTRL_F9
RETURN Qt_ControlModifier
CASE xbeK_SH_F10
RETURN Qt_ShiftModifier
CASE xbeK_ALT_F10
RETURN Qt_AltModifier
CASE xbeK_CTRL_F10
RETURN Qt_ControlModifier
CASE xbeK_SH_F11
RETURN Qt_ShiftModifier
CASE xbeK_ALT_F11
RETURN Qt_AltModifier
CASE xbeK_CTRL_F11
RETURN Qt_ControlModifier
CASE xbeK_SH_F12
RETURN Qt_ShiftModifier
CASE xbeK_ALT_F12
RETURN Qt_AltModifier
CASE xbeK_CTRL_F12
RETURN Qt_ControlModifier
CASE xbeK_P_ALT_ASTERISK
RETURN Qt_AltModifier
CASE xbeK_P_CTRL_ASTERISK
RETURN Qt_ControlModifier
CASE xbeK_P_ALT_PLUS
RETURN Qt_AltModifier
CASE xbeK_P_CTRL_PLUS
RETURN Qt_ControlModifier
CASE xbeK_ALT_MINUS
RETURN Qt_AltModifier
CASE xbeK_P_ALT_MINUS
RETURN Qt_AltModifier
CASE xbeK_P_CTRL_MINUS
RETURN Qt_ControlModifier
CASE xbeK_P_ALT_SLASH
RETURN Qt_AltModifier
CASE xbeK_P_CTRL_SLASH
RETURN Qt_ControlModifier
CASE xbeK_SH_CAPS_LOCK
RETURN Qt_ShiftModifier
CASE xbeK_ALT_CAPS_LOCK
RETURN Qt_AltModifier
CASE xbeK_CTRL_CAPS_LOCK
RETURN Qt_ControlModifier
CASE xbeK_ALT_SPACE
RETURN Qt_AltModifier
CASE xbeK_ALT_EQUALS
RETURN Qt_AltModifier
CASE xbeK_P_CTRL_5
RETURN Qt_ControlModifier
CASE xbeK_ALT_0
CASE xbeK_ALT_1
CASE xbeK_ALT_2
CASE xbeK_ALT_3
CASE xbeK_ALT_4
CASE xbeK_ALT_5
CASE xbeK_P_ALT_5
CASE xbeK_ALT_6
CASE xbeK_ALT_7
CASE xbeK_ALT_8
CASE xbeK_ALT_9
CASE xbeK_ALT_A
CASE xbeK_ALT_B
CASE xbeK_ALT_C
CASE xbeK_ALT_D
CASE xbeK_ALT_E
CASE xbeK_ALT_F
CASE xbeK_ALT_G
CASE xbeK_ALT_H
CASE xbeK_ALT_I
CASE xbeK_ALT_J
CASE xbeK_ALT_K
CASE xbeK_ALT_L
CASE xbeK_ALT_M
CASE xbeK_ALT_N
CASE xbeK_ALT_O
CASE xbeK_ALT_P
CASE xbeK_ALT_Q
CASE xbeK_ALT_R
CASE xbeK_ALT_S
CASE xbeK_ALT_T
CASE xbeK_ALT_U
CASE xbeK_ALT_V
CASE xbeK_ALT_W
CASE xbeK_ALT_X
CASE xbeK_ALT_Y
CASE xbeK_ALT_Z
RETURN Qt_AltModifier
CASE xbeK_CTRL_A
CASE xbeK_CTRL_B
CASE xbeK_CTRL_C
CASE xbeK_CTRL_D
CASE xbeK_CTRL_E
CASE xbeK_CTRL_F
CASE xbeK_CTRL_G
CASE xbeK_CTRL_H
CASE xbeK_CTRL_I
CASE xbeK_CTRL_J
CASE xbeK_CTRL_K
CASE xbeK_CTRL_L
CASE xbeK_CTRL_M
CASE xbeK_CTRL_N
CASE xbeK_CTRL_O
CASE xbeK_CTRL_P
CASE xbeK_CTRL_Q
CASE xbeK_CTRL_R
CASE xbeK_CTRL_S
CASE xbeK_CTRL_T
CASE xbeK_CTRL_U
CASE xbeK_CTRL_V
CASE xbeK_CTRL_W
CASE xbeK_CTRL_X
CASE xbeK_CTRL_Y
CASE xbeK_CTRL_Z
RETURN Qt_NoModifier
ENDSWITCH
RETURN Qt_NoModifier
/*----------------------------------------------------------------------*/

View File

@@ -159,20 +159,15 @@ FUNCTION AppType()
/*----------------------------------------------------------------------*/
FUNCTION PostAppEvent( nEvent, mp1, mp2, oXbp )
LOCAL qEvent
HB_SYMBOL_UNUSED( mp2 )
DEFAULT oXbp TO SetAppWindow()
SetAppEvent( nEvent, mp1, mp2, oXbp )
IF nEvent == xbeP_Keyboard
IF mp1 == xbeK_TAB
qEvent := QEvent( QEvent_KeyPress )
//s_oApp:postEvent( oXbp:oWidget, qEvent )
QApplication():postEvent( oXbp:oWidget, qEvent )
ENDIF
QApplication():sendEvent( oXbp:oWidget, QKeyEvent( QEvent_KeyPress, XbpAppEventToQKeyEvent( mp1 ), XbpAppEventModifier( mp1 ) ) )
ELSE
SetAppEvent( nEvent, mp1, mp2, oXbp )
ENDIF
RETURN .T.