Added hot keys support to RfbPlayer
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@34 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/rfbplayer/resource.h b/rfbplayer/resource.h
index 0199f48..f8ae33f 100644
--- a/rfbplayer/resource.h
+++ b/rfbplayer/resource.h
@@ -6,6 +6,7 @@
#define IDI_ICON1 105
#define IDI_ICON 105
#define IDR_MENU 128
+#define IDR_ACCELERATOR 131
#define IDC_BUTTON1 1000
#define IDC_EDIT1 1001
#define IDC_EDIT2 1002
@@ -26,13 +27,14 @@
#define ID_HELP_HOMEPAGE 40025
#define ID_HELP_COMMANDLINESEITCHES 40026
#define ID_HELP_ABOUT 40027
+#define ID_OPTIONS 40029
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 129
-#define _APS_NEXT_COMMAND_VALUE 40028
+#define _APS_NEXT_RESOURCE_VALUE 132
+#define _APS_NEXT_COMMAND_VALUE 40030
#define _APS_NEXT_CONTROL_VALUE 1003
#define _APS_NEXT_SYMED_VALUE 101
#endif
diff --git a/rfbplayer/rfbplayer.cxx b/rfbplayer/rfbplayer.cxx
index f52561f..dc0786c 100644
--- a/rfbplayer/rfbplayer.cxx
+++ b/rfbplayer/rfbplayer.cxx
@@ -1017,10 +1017,13 @@
}
// Run the player
+ HACCEL hAccel = LoadAccelerators(inst, MAKEINTRESOURCE(IDR_ACCELERATOR));
MSG msg;
while (GetMessage(&msg, NULL, 0, 0) > 0) {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
+ if(!TranslateAccelerator(player->getMainHandle(), hAccel, &msg)) {
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
}
// Wait while the thread destroying and then destroy the player
diff --git a/rfbplayer/rfbplayer.rc b/rfbplayer/rfbplayer.rc
index d7b79b1..1241d30 100644
--- a/rfbplayer/rfbplayer.rc
+++ b/rfbplayer/rfbplayer.rc
@@ -163,6 +163,31 @@
END
END
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Accelerator
+//
+
+IDR_ACCELERATOR ACCELERATORS DISCARDABLE
+BEGIN
+ "C", ID_PLAY_STOP, VIRTKEY, NOINVERT
+ "C", ID_FRAME_COPYTOCLIPBOARD, VIRTKEY, CONTROL, NOINVERT
+ "C", ID_FRAME_EXTRACT, VIRTKEY, ALT, NOINVERT
+ "G", ID_PLAY_GOTO, VIRTKEY, CONTROL, NOINVERT
+ "L", ID_PLAY_LOOP, VIRTKEY, CONTROL, NOINVERT
+ "O", ID_FILE_OPENFILE, VIRTKEY, CONTROL, NOINVERT
+ "P", ID_OPTIONS, VIRTKEY, CONTROL, NOINVERT
+ "Q", ID_FILE_CLOSEFILE, VIRTKEY, CONTROL, NOINVERT
+ "S", ID_PLAY_SETSPEED, VIRTKEY, CONTROL, NOINVERT
+ VK_F5, ID_VIEW_ZOOM_50, VIRTKEY, NOINVERT
+ VK_F6, ID_VIEW_ZOOM_100, VIRTKEY, NOINVERT
+ VK_F7, ID_VIEW_ZOOM_200, VIRTKEY, NOINVERT
+ VK_RETURN, ID_VIEW_FULLSCREEN, VIRTKEY, ALT, NOINVERT
+ VK_SPACE, ID_PLAY_PLAYPAUSE, VIRTKEY, NOINVERT
+ "X", ID_FILE_EXIT, VIRTKEY, ALT, NOINVERT
+END
+
#endif // English (U.K.) resources
/////////////////////////////////////////////////////////////////////////////