From 57111b09c375ba9d24532d97e2c7b8b78b998af2 Mon Sep 17 00:00:00 2001 From: erikc Date: Tue, 19 Jan 2010 18:28:53 -0800 Subject: [PATCH] Map WM_APPCOMMAND browser backward and forward messages to action-left and action-right. --- basis/ui/backend/windows/windows.factor | 11 +++++ basis/windows/messages/messages.factor | 60 +++++++++++++++++++++++++ 2 files changed, 71 insertions(+) diff --git a/basis/ui/backend/windows/windows.factor b/basis/ui/backend/windows/windows.factor index a6d73ca80f..fdd3c06c29 100644 --- a/basis/ui/backend/windows/windows.factor +++ b/basis/ui/backend/windows/windows.factor @@ -170,6 +170,8 @@ PRIVATE> : lo-word ( wparam -- lo ) *short ; inline : hi-word ( wparam -- hi ) -16 shift lo-word ; inline : >lo-hi ( WORD -- array ) [ lo-word ] [ hi-word ] bi 2array ; +: GET_APPCOMMAND_LPARAM ( lParam -- appCommand ) + hi-word FAPPCOMMAND_MASK lo-word bitnot bitand ; inline : crlf>lf ( str -- str' ) CHAR: \r swap remove ; @@ -495,6 +497,13 @@ SYMBOL: nc-buttons ReleaseCapture win32-error=0/f mouse-captured off ; +: handle-app-command ( hWnd uMsg wParam lParam -- ) + GET_APPCOMMAND_LPARAM + { + { APPCOMMAND_BROWSER_BACKWARD [ pick window left-action send-action ] } + { APPCOMMAND_BROWSER_FORWARD [ pick window right-action send-action ] } + } case 3drop ; + : handle-wm-buttondown ( hWnd uMsg wParam lParam -- ) [ over set-capture @@ -571,6 +580,8 @@ H{ } clone wm-handlers set-global [ handle-wm-set-focus 0 ] WM_SETFOCUS add-wm-handler [ handle-wm-kill-focus 0 ] WM_KILLFOCUS add-wm-handler +[ handle-app-command 0 ] WM_APPCOMMAND add-wm-handler + [ handle-wm-buttondown 0 ] WM_LBUTTONDOWN add-wm-handler [ handle-wm-buttondown 0 ] WM_MBUTTONDOWN add-wm-handler [ handle-wm-buttondown 0 ] WM_RBUTTONDOWN add-wm-handler diff --git a/basis/windows/messages/messages.factor b/basis/windows/messages/messages.factor index 10e6cd43c5..40b0979d49 100644 --- a/basis/windows/messages/messages.factor +++ b/basis/windows/messages/messages.factor @@ -1024,3 +1024,63 @@ CONSTANT: SC_RESTORE HEX: f120 CONSTANT: SC_TASKLIST HEX: f130 CONSTANT: SC_SCREENSAVE HEX: f140 CONSTANT: SC_HOTKEY HEX: f150 + +CONSTANT: APPCOMMAND_BROWSER_BACKWARD 1 +CONSTANT: APPCOMMAND_BROWSER_FORWARD 2 +CONSTANT: APPCOMMAND_BROWSER_REFRESH 3 +CONSTANT: APPCOMMAND_BROWSER_STOP 4 +CONSTANT: APPCOMMAND_BROWSER_SEARCH 5 +CONSTANT: APPCOMMAND_BROWSER_FAVORITES 6 +CONSTANT: APPCOMMAND_BROWSER_HOME 7 +CONSTANT: APPCOMMAND_VOLUME_MUTE 8 +CONSTANT: APPCOMMAND_VOLUME_DOWN 9 +CONSTANT: APPCOMMAND_VOLUME_UP 10 +CONSTANT: APPCOMMAND_MEDIA_NEXTTRACK 11 +CONSTANT: APPCOMMAND_MEDIA_PREVIOUSTRACK 12 +CONSTANT: APPCOMMAND_MEDIA_STOP 13 +CONSTANT: APPCOMMAND_MEDIA_PLAY_PAUSE 14 +CONSTANT: APPCOMMAND_LAUNCH_MAIL 15 +CONSTANT: APPCOMMAND_LAUNCH_MEDIA_SELECT 16 +CONSTANT: APPCOMMAND_LAUNCH_APP1 17 +CONSTANT: APPCOMMAND_LAUNCH_APP2 18 +CONSTANT: APPCOMMAND_BASS_DOWN 19 +CONSTANT: APPCOMMAND_BASS_BOOST 20 +CONSTANT: APPCOMMAND_BASS_UP 21 +CONSTANT: APPCOMMAND_TREBLE_DOWN 22 +CONSTANT: APPCOMMAND_TREBLE_UP 23 +CONSTANT: APPCOMMAND_MICROPHONE_VOLUME_MUTE 24 +CONSTANT: APPCOMMAND_MICROPHONE_VOLUME_DOWN 25 +CONSTANT: APPCOMMAND_MICROPHONE_VOLUME_UP 26 +CONSTANT: APPCOMMAND_HELP 27 +CONSTANT: APPCOMMAND_FIND 28 +CONSTANT: APPCOMMAND_NEW 29 +CONSTANT: APPCOMMAND_OPEN 30 +CONSTANT: APPCOMMAND_CLOSE 31 +CONSTANT: APPCOMMAND_SAVE 32 +CONSTANT: APPCOMMAND_PRINT 33 +CONSTANT: APPCOMMAND_UNDO 34 +CONSTANT: APPCOMMAND_REDO 35 +CONSTANT: APPCOMMAND_COPY 36 +CONSTANT: APPCOMMAND_CUT 37 +CONSTANT: APPCOMMAND_PASTE 38 +CONSTANT: APPCOMMAND_REPLY_TO_MAIL 39 +CONSTANT: APPCOMMAND_FORWARD_MAIL 40 +CONSTANT: APPCOMMAND_SEND_MAIL 41 +CONSTANT: APPCOMMAND_SPELL_CHECK 42 +CONSTANT: APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE 43 +CONSTANT: APPCOMMAND_MIC_ON_OFF_TOGGLE 44 +CONSTANT: APPCOMMAND_CORRECTION_LIST 45 +CONSTANT: APPCOMMAND_MEDIA_PLAY 46 +CONSTANT: APPCOMMAND_MEDIA_PAUSE 47 +CONSTANT: APPCOMMAND_MEDIA_RECORD 48 +CONSTANT: APPCOMMAND_MEDIA_FAST_FORWARD 49 +CONSTANT: APPCOMMAND_MEDIA_REWIND 50 +CONSTANT: APPCOMMAND_MEDIA_CHANNEL_UP 51 +CONSTANT: APPCOMMAND_MEDIA_CHANNEL_DOWN 52 +CONSTANT: APPCOMMAND_DELETE 53 +CONSTANT: APPCOMMAND_DWM_FLIP3D 54 + +CONSTANT: FAPPCOMMAND_MOUSE HEX: 8000 +CONSTANT: FAPPCOMMAND_KEY HEX: 0000 +CONSTANT: FAPPCOMMAND_OEM HEX: 1000 +CONSTANT: FAPPCOMMAND_MASK HEX: F000 -- 2.34.1