]> git.sesse.net Git - vlc/blobdiff - modules/gui/wxwindows/wxwindows.h
First part of code to allow configurable hotkeys.
[vlc] / modules / gui / wxwindows / wxwindows.h
index 7875907adfbcfbdcb0bd37a4f855733440457e7b..a8ab1e0874090fc5ef65952381e20e9f6184a3b0 100644 (file)
@@ -2,7 +2,7 @@
  * wxwindows.h: private wxWindows interface description
  *****************************************************************************
  * Copyright (C) 1999, 2000 VideoLAN
- * $Id: wxwindows.h,v 1.51 2003/08/10 09:22:07 gbazin Exp $
+ * $Id: wxwindows.h,v 1.52 2003/08/14 19:25:56 sigmunau Exp $
  *
  * Authors: Gildas Bazin <gbazin@netcourrier.com>
  *
@@ -28,6 +28,8 @@
 #include <wx/dnd.h>
 #include <wx/treectrl.h>
 #include <wx/gauge.h>
+#include <wx/accel.h>
+#include "vlc_keys.h"
 
 DECLARE_LOCAL_EVENT_TYPE( wxEVT_DIALOG, 0 );
 
@@ -147,6 +149,7 @@ public:
     wxGauge     *volctrl;
 
 private:
+    void UpdateAcceleratorTable();
     void CreateOurMenuBar();
     void CreateOurToolBar();
     void CreateOurSlider();
@@ -622,3 +625,52 @@ private:
 
     int  i_item_id;
 };
+
+static inline int ConvertHotkeyModifiers( int i_hotkey )
+{
+    int i_accel_flags = 0;
+    if( i_hotkey & KEY_MODIFIER_ALT ) i_accel_flags |= wxACCEL_ALT;
+    if( i_hotkey & KEY_MODIFIER_CTRL ) i_accel_flags |= wxACCEL_CTRL;
+    if( i_hotkey & KEY_MODIFIER_SHIFT ) i_accel_flags |= wxACCEL_SHIFT;
+    return i_accel_flags;
+}
+
+static inline int ConvertHotkey( int i_hotkey )
+{
+    int i_key = i_hotkey & ~KEY_MODIFIER;
+    if( i_key & KEY_ASCII ) return i_key & KEY_ASCII;
+    else if( i_key & KEY_SPECIAL )
+    {
+        switch ( i_key )
+        {
+        case KEY_LEFT: return WXK_LEFT;
+        case KEY_RIGHT: return WXK_RIGHT;
+        case KEY_UP: return WXK_UP;
+        case KEY_DOWN: return WXK_DOWN;
+        case KEY_SPACE: return WXK_SPACE;
+        case KEY_ENTER: return WXK_RETURN;
+        case KEY_F1: return WXK_F1;
+        case KEY_F2: return WXK_F2;
+        case KEY_F3: return WXK_F3;
+        case KEY_F4: return WXK_F4;
+        case KEY_F5: return WXK_F5;
+        case KEY_F6: return WXK_F6;
+        case KEY_F7: return WXK_F7;
+        case KEY_F8: return WXK_F8;
+        case KEY_F9: return WXK_F9;
+        case KEY_F10: return WXK_F10;
+        case KEY_F11: return WXK_F11;
+        case KEY_F12: return WXK_F12;
+        case KEY_HOME: return WXK_HOME;
+        case KEY_END: return WXK_HOME;
+        case KEY_MENU: return WXK_MENU;
+        case KEY_ESC: return WXK_ESCAPE;
+        case KEY_PAGEUP: return WXK_PRIOR;
+        case KEY_PAGEDOWN: return WXK_NEXT;
+        case KEY_TAB: return WXK_TAB;
+        case KEY_BACKSPACE: return WXK_BACK;
+        default:
+            return 0;
+        }
+    }             
+}