2
* Common GUI Library - Darwin Keyboard routines.
4
* @todo Move this up somewhere so that the two SDL GUIs can use this code too.
8
* Copyright (C) 2006-2007 Sun Microsystems, Inc.
10
* This file is part of VirtualBox Open Source Edition (OSE), as
11
* available from http://www.virtualbox.org. This file is free software;
12
* you can redistribute it and/or modify it under the terms of the GNU
13
* General Public License (GPL) as published by the Free Software
14
* Foundation, in version 2 as it comes in the "COPYING" file of the
15
* VirtualBox OSE distribution. VirtualBox OSE is distributed in the
16
* hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
18
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
19
* Clara, CA 95054 USA or visit http://www.sun.com if you need
20
* additional information or have any questions.
24
#ifndef ___DarwinKeyboard_h___
25
#define ___DarwinKeyboard_h___
27
#include <iprt/cdefs.h>
28
#include <CoreFoundation/CFBase.h>
32
/** Private hack for missing rightCmdKey enum. */
33
#define kEventKeyModifierRightCmdKeyMask (1<<27)
35
/** The scancode mask. */
36
#define VBOXKEY_SCANCODE_MASK 0x007f
38
#define VBOXKEY_EXTENDED 0x0080
40
#define VBOXKEY_MODIFIER 0x0400
41
/** Lock key (like num lock and caps lock). */
42
#define VBOXKEY_LOCK 0x0800
44
unsigned DarwinKeycodeToSet1Scancode(unsigned uKeyCode);
45
UInt32 DarwinAdjustModifierMask(UInt32 fModifiers, const void *pvCocoaEvent);
46
unsigned DarwinModifierMaskToSet1Scancode(UInt32 fModifiers);
47
unsigned DarwinModifierMaskToDarwinKeycode(UInt32 fModifiers);
48
UInt32 DarwinKeyCodeToDarwinModifierMask(unsigned uKeyCode);
49
void DarwinDisableGlobalHotKeys(bool fDisable);
50
void DarwinGrabKeyboard(bool fGlobalHotkeys);
51
void DarwinReleaseKeyboard(void);