Mercurial > projects > dynamin
changeset 71:63ea570c8d7c
Add Key to string and string to Key conversion.
author | Jordan Miner <jminer7@gmail.com> |
---|---|
date | Mon, 10 Aug 2009 17:04:08 -0500 |
parents | 340c3777ea68 |
children | 8dac206ea523 |
files | dynamin/gui/key.d |
diffstat | 1 files changed, 28 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/dynamin/gui/key.d Mon Aug 10 03:38:06 2009 -0500 +++ b/dynamin/gui/key.d Mon Aug 10 17:04:08 2009 -0500 @@ -110,13 +110,8 @@ Alt = 0x40000 } -/*string KeyToString(Key key) { - static string[] table = [ - "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", - "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", - "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", - "Escape", "Tab", "Backspace", "Enter", "Space", +const string[] keyStringTable = [ + "None", "Escape", "Tab", "Backspace", "Enter", "Space", "Left Arrow", "Right Arrow", "Up Arrow", "Down Arrow", "Insert", "Delete", "Home", "End", "Page Up", "Page Down", "Print Screen", "Pause", @@ -124,16 +119,31 @@ "NumPad0", "NumPad1", "NumPad2", "NumPad3", "NumPad4", "NumPad5", "NumPad6", "NumPad7", "NumPad8", "NumPad9", "NumPad/", "NumPad*", "NumPad-", "NumPad+", "NumPad.", - "`", "-", "=", "[", "]", "\\", ";", "'", ",", ".", "/", - "Shift", "Ctrl", "Alt" - ]; - return table[key]; + "`", "-", "=", "[", "]", "\\", ";", "'", ",", ".", "/", "Menu", + "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", + "", "", "", "", "", "", "", + "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", + "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", + "Volume Up", "Volume Down", "Volume Mute", + "Play/Pause", "Stop", "Next Track", "Previous Track" +]; +string keyToString(Key key) { + if(key == Key.Shift) + return "Shift"; + else if(key == Key.Control) + return "Ctrl"; + else if(key == Key.Alt) + return "Alt"; + return keyStringTable[key]; } Key toKey(string str) { - foreach(i, s; table) + if(!str) + return Key.None; + foreach(i, s; keyStringTable) if(s == str) - return i; - return + return cast(Key)i; + return Key.None; } unittest { assert(keyToString(Key.D0) == "0"); @@ -141,16 +151,16 @@ assert(keyToString(Key.N) == "N"); assert(keyToString(Key.F1) == "F1"); assert(keyToString(Key.Escape) == "Escape"); - assert(keyToString(Key.Left) == "Left"); - assert(keyToString(Key.Up) == "Up"); + assert(keyToString(Key.Left) == "Left Arrow"); + assert(keyToString(Key.Up) == "Up Arrow"); assert(keyToString(Key.Insert) == "Insert"); assert(keyToString(Key.PrintScreen) == "Print Screen"); assert(keyToString(Key.Pause) == "Pause"); - assert(keyToString(Key.CapsLock) == "CapsLock"); + assert(keyToString(Key.CapsLock) == "Caps Lock"); assert(keyToString(Key.NumPad0) == "NumPad0"); assert(keyToString(Key.NumPad5) == "NumPad5"); assert(keyToString(Key.NumPadDivide) == "NumPad/"); assert(keyToString(Key.Backquote) == "`"); assert(keyToString(Key.Control) == "Ctrl"); -}*/ +}