6e8fbca745
match the genesis editor version 1.3.0.653.
229 lines
4.7 KiB
C++
229 lines
4.7 KiB
C++
/****************************************************************************
|
||
Copyright (c) 2011-2013,WebJet Business Division,CYOU
|
||
|
||
http://www.genesis-3d.com.cn
|
||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||
of this software and associated documentation files (the "Software"), to deal
|
||
in the Software without restriction, including without limitation the rights
|
||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||
copies of the Software, and to permit persons to whom the Software is
|
||
furnished to do so, subject to the following conditions:
|
||
|
||
The above copyright notice and this permission notice shall be included in
|
||
all copies or substantial portions of the Software.
|
||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||
THE SOFTWARE.
|
||
****************************************************************************/
|
||
#ifndef __inputkey_H__
|
||
#define __inputkey_H__
|
||
|
||
|
||
#include "core/types.h"
|
||
#include "util/string.h"
|
||
#include "util/dictionary.h"
|
||
|
||
//------------------------------------------------------------------------------
|
||
namespace Input
|
||
{
|
||
class InputKey
|
||
{
|
||
public:
|
||
/// key codes
|
||
enum Code
|
||
{
|
||
Back,
|
||
Tab,
|
||
Clear,
|
||
Return,
|
||
Shift,
|
||
Control,
|
||
Menu,
|
||
Pause,
|
||
Capital,
|
||
Escape,
|
||
Convert,
|
||
NonConvert,
|
||
Accept,
|
||
ModeChange,
|
||
Space,
|
||
Prior,
|
||
Next,
|
||
End,
|
||
Home,
|
||
Left,
|
||
Right,
|
||
Up,
|
||
Down,
|
||
Select,
|
||
Print,
|
||
Execute,
|
||
Snapshot,
|
||
Insert,
|
||
Delete,
|
||
Help,
|
||
LeftWindows,
|
||
RightWindows,
|
||
Apps,
|
||
Sleep,
|
||
NumPad0,
|
||
NumPad1,
|
||
NumPad2,
|
||
NumPad3,
|
||
NumPad4,
|
||
NumPad5,
|
||
NumPad6,
|
||
NumPad7,
|
||
NumPad8,
|
||
NumPad9,
|
||
Multiply,
|
||
Add,
|
||
Separator, //û<><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
Subtract,
|
||
Decimal,
|
||
Divide,
|
||
F1,
|
||
F2,
|
||
F3,
|
||
F4,
|
||
F5,
|
||
F6,
|
||
F7,
|
||
F8,
|
||
F9,
|
||
F10,
|
||
F11,
|
||
F12,
|
||
F13,
|
||
F14,
|
||
F15,
|
||
F16,
|
||
F17,
|
||
F18,
|
||
F19,
|
||
F20,
|
||
F21,
|
||
F22,
|
||
F23,
|
||
F24,
|
||
NumLock,
|
||
Scroll,
|
||
|
||
Semicolon, // ';:'
|
||
Slash, // '/?'
|
||
Tilde, // '`~'
|
||
LeftBracket, // '[{'
|
||
RightBracket, // ']}'
|
||
BackSlash, // '\|'
|
||
Quote, // ''"'
|
||
Comma, // ' ,<'
|
||
Underbar, // '-_'
|
||
Period, // '.>'
|
||
Equality, // '=+'
|
||
|
||
LeftShift,
|
||
RightShift,
|
||
LeftControl,
|
||
RightControl,
|
||
LeftMenu,
|
||
RightMenu,
|
||
BrowserBack,
|
||
BrowserForward,
|
||
BrowserRefresh,
|
||
BrowserStop,
|
||
BrowserSearch,
|
||
BrowserFavorites,
|
||
BrowserHome,
|
||
VolumeMute,
|
||
VolumeDown,
|
||
VolumeUp,
|
||
MediaNextTrack,
|
||
MediaPrevTrack,
|
||
MediaStop,
|
||
MediaPlayPause,
|
||
LaunchMail,
|
||
LaunchMediaSelect,
|
||
LaunchApp1,
|
||
LaunchApp2,
|
||
Key0,
|
||
Key1,
|
||
Key2,
|
||
Key3,
|
||
Key4,
|
||
Key5,
|
||
Key6,
|
||
Key7,
|
||
Key8,
|
||
Key9,
|
||
A,
|
||
B,
|
||
C,
|
||
D,
|
||
E,
|
||
F,
|
||
G,
|
||
H,
|
||
I,
|
||
J,
|
||
K,
|
||
L,
|
||
M,
|
||
N,
|
||
O,
|
||
P,
|
||
Q,
|
||
R,
|
||
S,
|
||
T,
|
||
U,
|
||
V,
|
||
W,
|
||
X,
|
||
Y,
|
||
Z,
|
||
|
||
System, // Alt Key
|
||
|
||
NumKeyCodes,
|
||
InvalidKey,
|
||
};
|
||
|
||
/// key group
|
||
enum Group
|
||
{
|
||
Letters, // (A, B, ..., Z)
|
||
Numbers, // (Key_0, ..., Key_9)
|
||
NumPad, // (NumPad_0, ... NumPad9...+-*/)
|
||
FunctionKeys, // (F1, ... , F24)
|
||
CursorKeys, // (->,... ,<-)
|
||
HomeBlock // (Home, End, Prior, Next, Insert, Delete)
|
||
};
|
||
|
||
/// convert to string
|
||
static Util::String ToString(Code code);
|
||
/// convert from string
|
||
static Code FromString(const Util::String& str);
|
||
/// get key codes by group
|
||
static Util::Array<InputKey::Code> KeyCodesByGroup(InputKey::Group group);
|
||
private:
|
||
static Util::Dictionary<Util::String,Code> dict;
|
||
};
|
||
|
||
};
|
||
//------------------------------------------------------------------------------
|
||
|
||
|
||
|
||
|
||
|
||
#endif // __inputkey_H__
|
||
|
||
|
||
|