mcgluszak

[Author: Aleworks] Aleworks' Keys Module v1.11

Jul 31st, 2011
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 13.80 KB | None | 0 0
  1. #=============================================================================
  2. # *** Aleworks Keys Module(AKM)
  3. #=============================================================================
  4. # Created by Aleworks
  5. # Version: 1.11
  6. # Last Update: 11/09/2007 (day/month/year)
  7. #=============================================================================
  8. #==== Description ====
  9. # This module, is a complement for AIM(Aleworks Input Module). It contains all
  10. # virtual keys named, from keyboard and mouse, for their use in AIM.
  11. #=============================================================================
  12. #==== Credits ====
  13. # * Me(TM)
  14. #   - Codes for: Keys.var_name? method, and Keys.var_vk? method
  15. #=============================================================================
  16. #==== Version History ====
  17. # * 1.10
  18. #   - All the lacking virtual keys added(74 keys added)
  19. #   - Keys.name? method improved
  20. #   - New methods: Keys.var_name?; Keys.vk?; Keys.var_vk?
  21. # * 1.11
  22. #   - Fixed Bug between Enter and Clear virtual codes
  23. #=============================================================================
  24. #==== Instructions ====
  25. # For reading a virtual key use: Keys::VIRTUALKEY, where VIRTUALKEY is the
  26. # name of the key you want to use. For example: Keys::A, will return 65, the
  27. # virtual key code of A key.
  28. #=============================================================================
  29. #==== Classes & Methods ====
  30. # ** Module Keys
  31. #   * Methods
  32. #     - Keys.name?(vk)
  33. #       vk is the virtual key that will have its name returned.
  34. #     - Keys.var_name?(vk)
  35. #       vk is the virtual key that will have its keys variable name returned.
  36. #     - Keys.vk?(name)
  37. #       name is the name of the key that will have its virtual key returned.
  38. #     - Keys.var_vk?(name)
  39. #       name is the name of the key variable that will have its virtual key
  40. #       returned.
  41. #=============================================================================
  42.  
  43. #=============================================================================
  44. # ** Module Keys
  45. #=============================================================================
  46. module Keys
  47.   #---------------------------------------------------------------------------
  48.   # * Mouse Buttons
  49.   #---------------------------------------------------------------------------
  50.   MOUSE_LEFT      = 1 # Mouse primary button (Normaly the left button)
  51.   MOUSE_RIGHT     = 2 # Mouse secondary button (Normaly the right button)
  52.   MOUSE_MIDDLE    = 4 # Mouse middle button
  53.   MOUSE_4TH       = 5 # Mouse fourth button
  54.   MOUSE_5TH       = 6 # Mouse fifth button
  55.   #---------------------------------------------------------------------------
  56.   # * Miscellaneous Keys
  57.   #---------------------------------------------------------------------------
  58.   CANCEL        = 3   # Cancel key
  59.   BACKSPACE     = 8   # Backspace key
  60.   TAB           = 9   # Tab key
  61.   CLEAR         = 12  # Clear key
  62.   RETURN        = 13  # Enter key
  63.   SHIFT         = 16  # Shift key
  64.   CTRL          = 17  # Control key
  65.   ALT           = 18  # Alt key
  66.   PAUSE         = 19  # Pause key
  67.   ESCAPE        = 27  # Escape key
  68.   SPACE         = 32  # Space bar key
  69.   PGUP          = 33  # Page Up key
  70.   PGDN          = 34  # Page Down key
  71.   ENDS          = 35  # End key
  72.   HOME          = 36  # Home key
  73.   LEFT          = 37  # Left Arrow key
  74.   UP            = 38  # Up Arrow key
  75.   RIGHT         = 39  # Right Arrow key
  76.   DOWN          = 40  # Down Arrow key
  77.   SNAPSHOT      = 44  # Print Screen key
  78.   SELECT        = 41  # Select key
  79.   PRINT         = 42  # Print key
  80.   EXECUTE       = 43  # Execute key
  81.   INSERT        = 45  # Insert key
  82.   DELETE        = 46  # Delete key
  83.   HELP          = 47  # Help key
  84.   LEFT_SHIFT    = 160 # Left Shift key
  85.   RIGHT_SHIFT   = 161 # Right Shift key
  86.   LEFT_CONTROL  = 162 # Left Control key
  87.   RIGHT_CONTROL = 163 # Right Control key
  88.   LEFT_ALT      = 164 # Left Alt key
  89.   RIGHT_ALT     = 165 # Right Alt key
  90.   #---------------------------------------------------------------------------
  91.   # * Number Keys
  92.   #---------------------------------------------------------------------------
  93.   N0 = 48 # 0 key
  94.   N1 = 49 # 1 key
  95.   N2 = 50 # 2 key
  96.   N3 = 51 # 3 key
  97.   N4 = 52 # 4 key
  98.   N5 = 53 # 5 key
  99.   N6 = 54 # 6 key
  100.   N7 = 55 # 7 key
  101.   N8 = 56 # 8 key
  102.   N9 = 57 # 9 key
  103.   #---------------------------------------------------------------------------
  104.   # * Letters Keys
  105.   #---------------------------------------------------------------------------
  106.   A = 65 # A key
  107.   B = 66 # B key
  108.   C = 67 # C key
  109.   D = 68 # D key
  110.   E = 69 # E key
  111.   F = 70 # F key
  112.   G = 71 # G key
  113.   H = 72 # H key
  114.   I = 73 # I key
  115.   J = 74 # J key
  116.   K = 75 # K key
  117.   L = 76 # L key
  118.   M = 77 # M key
  119.   N = 78 # N key
  120.   O = 79 # O key
  121.   P = 80 # P key
  122.   Q = 81 # Q key
  123.   R = 82 # R key
  124.   S = 83 # S key
  125.   T = 84 # T key
  126.   U = 85 # U key
  127.   V = 86 # V key
  128.   W = 87 # W key
  129.   X = 88 # X key
  130.   Y = 89 # Y key
  131.   Z = 90 # Z key
  132.   #---------------------------------------------------------------------------
  133.   # * Windows Keys
  134.   #---------------------------------------------------------------------------
  135.   LWIN                = 91  # Left Windows key (Microsoft Natural keyboard)
  136.   RWIN                = 92  # Right Windows key (Natural keyboard)
  137.   APPS                = 93  # Applications key (Natural keyboard)
  138.   SLEEP               = 95  # Computer Sleep key
  139.   BROWSER_BAK         = 166 # Browser Back key
  140.   BROWSER_FORWARD     = 167 # Browser Forward key
  141.   BROWSER_REFRESH     = 168 # Browser Refresh key
  142.   BROWSER_STOP        = 169 # Browser Stop key
  143.   BROWSER_SEARCH      = 170 # Browser Search key
  144.   BROWSER_FAVORITES   = 171 # Browser Favorites key
  145.   BROWSER_HOME        = 172 # Browser Start and Home key
  146.   VOLUME_MUTE         = 173 # Volume Mute key
  147.   VOLUME_DOWN         = 174 # Volume Down key
  148.   VOLUME_UP           = 175 # Volume Up key
  149.   MEDIA_NEXT_TRACK    = 176 # Next Track key
  150.   MEDIA_PREV_TRACK    = 177 # Previous Track key
  151.   MEDIA_STOP          = 178 # Stop Media key
  152.   MEDIA_PLAY_PAUSE    = 179 # Play/Pause Media key
  153.   LAUNCH_MAIL         = 180 # Start Mail key
  154.   LAUNCH_MEDIA_SELECT = 181 # Select Media key
  155.   LAUNCH_APP1         = 182 # Start Application 1 key
  156.   LAUNCH_APP2         = 183 # Start Application 2 key
  157.   PROCESS             = 229 # Proccess key
  158.   ATTN                = 246 # Attn key
  159.   CRSEL               = 247 # CrSel key
  160.   EXSEL               = 248 # ExSel key
  161.   EREOF               = 249 # Erase EOF key
  162.   PLAY                = 250 # Play key
  163.   ZOOM                = 251 # Zoom key
  164.   PA1                 = 253 # PA1 key
  165.   #---------------------------------------------------------------------------
  166.   # * Pad Keys
  167.   #---------------------------------------------------------------------------
  168.   NUMPAD0   = 96  # 0 key
  169.   NUMPAD1   = 97  # 1 key
  170.   NUMPAD2   = 98  # 2 key
  171.   NUMPAD3   = 99  # 3 key
  172.   NUMPAD4   = 100 # 4 key
  173.   NUMPAD5   = 101 # 5 key
  174.   NUMPAD6   = 102 # 6 key
  175.   NUMPAD7   = 103 # 7 key
  176.   NUMPAD8   = 104 # 8 key
  177.   NUMPAD9   = 105 # 9 key
  178.   MULTIPLY  = 106 # Multiply key (*)
  179.   ADD       = 107 # Add key (+)
  180.   SEPARATOR = 108 # Separator key
  181.   SUBTRACT  = 109 # Subtract key (-)
  182.   DECIMAL   = 110 # Decimal key (.)
  183.   DIVIDE    = 111 # Divide key (/)
  184.   #---------------------------------------------------------------------------
  185.   # * F Keys
  186.   #---------------------------------------------------------------------------
  187.   F1  = 112  # F1 key
  188.   F2  = 113  # F2 key
  189.   F3  = 114  # F3 key
  190.   F4  = 115  # F4 key
  191.   F5  = 116  # F5 key
  192.   F6  = 117  # F6 key
  193.   F7  = 118  # F7 key
  194.   F8  = 119  # F8 key
  195.   F9  = 120  # F9 key
  196.   F10 = 121  # F10 key
  197.   F11 = 122  # F11 key
  198.   F12 = 123  # F12 key
  199.   F13 = 124  # F13 key
  200.   F14 = 125  # F14 key
  201.   F15 = 126  # F15 key
  202.   F16 = 127  # F16 key
  203.   F17 = 128  # F17 key
  204.   F18 = 129  # F18 key
  205.   F19 = 130  # F19 key
  206.   F20 = 131  # F20 key
  207.   F21 = 132  # F21 key
  208.   F22 = 133  # F22 key
  209.   F23 = 134  # F23 key
  210.   F24 = 135  # F24 key
  211.   #---------------------------------------------------------------------------
  212.   # * Mode Keys
  213.   #---------------------------------------------------------------------------
  214.   CAPS_LOCK   = 20  # Caps lock key
  215.   NUM_LOCK    = 144 # Num lock key
  216.   SCROLL_LOCK = 145 # Scroll lock key
  217.   KANA        = 21  # Kana key
  218.   JUNJA       = 23  # Junja key
  219.   FINAL       = 24  # Final key
  220.   KANJI       = 25  # Kanji key
  221.   CONVERT     = 28  # Convert key
  222.   NONCONVERT  = 29  # Non convert key
  223.   ACCEPT      = 30  # Accept key
  224.   MODECHANGE  = 31  # Mode change request key
  225.   #---------------------------------------------------------------------------
  226.   # * OEM Keys
  227.   #   - Keys used for miscellaneous characters; they can vary by keyboard.
  228.   #---------------------------------------------------------------------------
  229.   OEM_1     = 186 # In USA 101/102 keyboards (; :)
  230.   OEM_2     = 187 # In USA 101/102 keyboards (= +)
  231.   OEM_3     = 188 # In USA 101/102 keyboards (, <)
  232.   OEM_4     = 189 # In USA 101/102 keyboards (- _)
  233.   OEM_5     = 190 # In USA 101/102 keyboards (. >)
  234.   OEM_6     = 191 # In USA 101/102 keyboards (/ ?)
  235.   OEM_7     = 192 # In USA 101/102 keyboards (` ~)
  236.   OEM_8     = 219 # In USA 101/102 keyboards ([ {)
  237.   OEM_9     = 220 # In USA 101/102 keyboards (\ |)
  238.   OEM_10    = 221 # In USA 101/102 keyboards (] })
  239.   OEM_11    = 222 # In USA 101/102 keyboards (' ")
  240.   OEM_13    = 223 # OEM key
  241.   OEM_14    = 226 # OEM key
  242.   OEM_15    = 146 # OEM key
  243.   OEM_16    = 147 # OEM key
  244.   OEM_17    = 148 # OEM key
  245.   OEM_18    = 149 # OEM key
  246.   OEM_19    = 150 # OEM key
  247.   OEM_20    = 225 # OEM key
  248.   OEM_21    = 227 # OEM key
  249.   OEM_22    = 228 # OEM key
  250.   OEM_23    = 230 # OEM key
  251.   OEM_24    = 232 # OEM key
  252.   OEM_25    = 240 # OEM key
  253.   OEM_26    = 241 # OEM key
  254.   OEM_27    = 242 # OEM key
  255.   OEM_28    = 243 # OEM key
  256.   OEM_29    = 244 # OEM key
  257.   OEM_30    = 245 # OEM key
  258.   OEM_CLEAR = 254 # OEM Clear key
  259.   #---------------------------------------------------------------------------
  260.   # * Keys Names
  261.   #---------------------------------------------------------------------------
  262.   KEYS_NAMES = {1=>'Mouse Primary',2=>'Mouse Secondary',3=>'Cancel',
  263.   4=>'Mouse Middle',5=>'Mouse 4th',6=>'Mouse 5th',8=>'Backspace',9=>'Tab',
  264.   12=>'Clear',13=>'Enter',16=>'Shift',17=>'Control',18=>'Alt',19=>'Pause',
  265.   20=>'Capitals Lock',21=>'Kana',23=>'Junja',24=>'Final',25=>'Kanji',
  266.   27=>'Escape',28=>'Convert',29=>'Non Convert',30=>'Accept',31=>'Mode Change',
  267.   32=>'Space',33=>'Page Up',34=>'Page Down',35=>'End',36=>'Home',37=>'Left',
  268.   38=>'Up',39=>'Right',40=>'Down',41=>'Select',42=>'Print',43=>'Execute',
  269.   44=>'Snapshot',45=>'Insert',46=>'Delete',47=>'Help',48=>'0',49=>'1',50=>'2',
  270.   51=>'3',52=>'4',53=>'5',54=>'6',55=>'7',56=>'8',57=>'9',65=>'A',66=>'B',
  271.   67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',
  272.   76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',
  273.   85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'Left Windows',
  274.   92=>'Right Windows',93=>'Application',95=>'Sleep',96=>'PAD 0',97=>'PAD 1',
  275.   98=>'PAD 2',99=>'PAD 3',100=>'PAD 4',101=>'PAD 5',102=>'PAD 6',103=>'PAD 7',
  276.   104=>'PAD 8',105=>'PAD 9',106=>'*',107=>'+',108=>'Separator',109=>'-',110=>'.',
  277.   111=>'/',112=>'F1',113=>'F2',114=>'F3',115=>'F4',116=>'F5',117=>'F6',118=>'F7',
  278.   119=>'F8',120=>'F9',121=>'F10',122=>'F11',123=>'F12',124=>'F13',125=>'F14',
  279.   126=>'F15',127=>'F16',128=>'F17',129=>'F18',130=>'F19',131=>'F20',132=>'F21',
  280.   133=>'F22',134=>'F23',135=>'F24',144=>'Number Lock',145=>'Scroll Lock',
  281.   146=>'OEM 15',147=>'OEM 16',148=>'OEM 17',149=>'OEM 18',150=>'OEM 19',
  282.   160=>'Left Shift',161=>'Right Shift',162=>' Left Control',163=>'Right Control',
  283.   164=>' Left Alt',165=>'Right Alt',166=>'Browser Back',167=>'Browser Forward',
  284.   168=>'Browser Refresh',169=>'Browser Stop',170=>'Browser Search',
  285.   171=>'Browser Favorites',172=>'Browser Home',173=>'Volume Mute',
  286.   174=>'Volume Down',175=>'Volume Up',176=>'Media Next Track',
  287.   177=>'Media Previous Track',178=>'Media Stop',179=>'Media Play Pause',
  288.   180=>'Launch Mail',181=>'Launch Media Select',182=>'Launch Application',
  289.   183=>'Launch Application',186=>'OEM 1',187=>'OEM 2',188=>'OEM 3',189=>'OEM 4',
  290.   190=>'OEM 5',191=>'OEM 6',192=>'OEM 7',219=>'OEM 8',220=>'OEM 9',221=>'OEM 10',
  291.   222=>'OEM 11',223=>'OEM 13',225=>'OEM 20',226=>'OEM 14',227=>'OEM 21',
  292.   228=>'OEM 22',229=>'Proccess',230=>'OEM 23',232=>'OEM 24',240=>'OEM 25',
  293.   241=>'OEM 26',242=>'OEM 27',243=>'OEM 28',244=>'OEM 29',245=>'OEM 30',
  294.   246=>'ATTN',247=>'CRSEL',248=>'EXSEL',249=>'EREOF',250=>'Play',251=>'Zoom',
  295.   253=>'PA1',254=>'OEM Clear'}
  296.   #---------------------------------------------------------------------------
  297.   # * Virtual Key to Key Name
  298.   #---------------------------------------------------------------------------
  299.   def Keys.name?(vk)
  300.     KEYS_NAMES[vk].nil? ? '???' : KEYS_NAMES[vk]
  301.   end
  302.   #---------------------------------------------------------------------------
  303.   # * Virtual Key to Virtual Key Variable Name
  304.   #---------------------------------------------------------------------------
  305.   def Keys.var_name?(vk)
  306.     Keys.constants.size.times do |index|
  307.       if eval("Keys::#{Keys.constants[index]}") == vk
  308.         return Keys.constants[index]
  309.       end
  310.     end
  311.     '???'
  312.   end
  313.   #---------------------------------------------------------------------------
  314.   # * Key Name to Virtual Key
  315.   #---------------------------------------------------------------------------
  316.   def Keys.vk?(name)
  317.     KEYS_NAMES.invert[name].nil? ? 0 : KEYS_NAMES.invert[name]
  318.   end
  319.   #---------------------------------------------------------------------------
  320.   # * Virtual Key Variable Name to Virtual Key
  321.   #---------------------------------------------------------------------------
  322.   def Keys.var_vk?(name)
  323.     if Keys.constants.include?(name)
  324.       eval("Keys::#{Keys.constants[Keys.constants.index(name)]}")
  325.     else
  326.       0
  327.     end
  328.   end
  329. end
Advertisement
Add Comment
Please, Sign In to add comment