home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_2338 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  4.2 KB  |  130 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import winconstants as c32
  5. from ctypes import windll
  6. import ctypes
  7. from common import validkey, KeyPress, make_KeyPress_from_keydescr
  8. code2sym_map = {
  9.     c32.VK_CANCEL: 'cancel',
  10.     c32.VK_BACK: 'backspace',
  11.     c32.VK_TAB: 'tab',
  12.     c32.VK_CLEAR: 'clear',
  13.     c32.VK_RETURN: 'return',
  14.     c32.VK_SHIFT: 'shift_l',
  15.     c32.VK_CONTROL: 'control_l',
  16.     c32.VK_MENU: 'alt_l',
  17.     c32.VK_PAUSE: 'pause',
  18.     c32.VK_CAPITAL: 'caps_lock',
  19.     c32.VK_ESCAPE: 'escape',
  20.     c32.VK_SPACE: 'space',
  21.     c32.VK_PRIOR: 'prior',
  22.     c32.VK_NEXT: 'next',
  23.     c32.VK_END: 'end',
  24.     c32.VK_HOME: 'home',
  25.     c32.VK_LEFT: 'left',
  26.     c32.VK_UP: 'up',
  27.     c32.VK_RIGHT: 'right',
  28.     c32.VK_DOWN: 'down',
  29.     c32.VK_SELECT: 'select',
  30.     c32.VK_PRINT: 'print',
  31.     c32.VK_EXECUTE: 'execute',
  32.     c32.VK_SNAPSHOT: 'snapshot',
  33.     c32.VK_INSERT: 'insert',
  34.     c32.VK_DELETE: 'delete',
  35.     c32.VK_HELP: 'help',
  36.     c32.VK_F1: 'f1',
  37.     c32.VK_F2: 'f2',
  38.     c32.VK_F3: 'f3',
  39.     c32.VK_F4: 'f4',
  40.     c32.VK_F5: 'f5',
  41.     c32.VK_F6: 'f6',
  42.     c32.VK_F7: 'f7',
  43.     c32.VK_F8: 'f8',
  44.     c32.VK_F9: 'f9',
  45.     c32.VK_F10: 'f10',
  46.     c32.VK_F11: 'f11',
  47.     c32.VK_F12: 'f12',
  48.     c32.VK_F13: 'f13',
  49.     c32.VK_F14: 'f14',
  50.     c32.VK_F15: 'f15',
  51.     c32.VK_F16: 'f16',
  52.     c32.VK_F17: 'f17',
  53.     c32.VK_F18: 'f18',
  54.     c32.VK_F19: 'f19',
  55.     c32.VK_F20: 'f20',
  56.     c32.VK_F21: 'f21',
  57.     c32.VK_F22: 'f22',
  58.     c32.VK_F23: 'f23',
  59.     c32.VK_F24: 'f24',
  60.     c32.VK_NUMLOCK: 'num_lock,',
  61.     c32.VK_SCROLL: 'scroll_lock',
  62.     c32.VK_APPS: 'vk_apps',
  63.     c32.VK_PROCESSKEY: 'vk_processkey',
  64.     c32.VK_ATTN: 'vk_attn',
  65.     c32.VK_CRSEL: 'vk_crsel',
  66.     c32.VK_EXSEL: 'vk_exsel',
  67.     c32.VK_EREOF: 'vk_ereof',
  68.     c32.VK_PLAY: 'vk_play',
  69.     c32.VK_ZOOM: 'vk_zoom',
  70.     c32.VK_NONAME: 'vk_noname',
  71.     c32.VK_PA1: 'vk_pa1',
  72.     c32.VK_OEM_CLEAR: 'vk_oem_clear',
  73.     c32.VK_NUMPAD0: 'numpad0',
  74.     c32.VK_NUMPAD1: 'numpad1',
  75.     c32.VK_NUMPAD2: 'numpad2',
  76.     c32.VK_NUMPAD3: 'numpad3',
  77.     c32.VK_NUMPAD4: 'numpad4',
  78.     c32.VK_NUMPAD5: 'numpad5',
  79.     c32.VK_NUMPAD6: 'numpad6',
  80.     c32.VK_NUMPAD7: 'numpad7',
  81.     c32.VK_NUMPAD8: 'numpad8',
  82.     c32.VK_NUMPAD9: 'numpad9',
  83.     c32.VK_DIVIDE: 'divide',
  84.     c32.VK_MULTIPLY: 'multiply',
  85.     c32.VK_ADD: 'add',
  86.     c32.VK_SUBTRACT: 'subtract',
  87.     c32.VK_DECIMAL: 'vk_decimal' }
  88. VkKeyScan = windll.user32.VkKeyScanA
  89.  
  90. def char_to_keyinfo(char, control = False, meta = False, shift = False):
  91.     k = KeyPress()
  92.     vk = VkKeyScan(ord(char))
  93.     if vk & 65535 == 65535:
  94.         print 'VkKeyScan("%s") = %x' % (char, vk)
  95.         raise ValueError, 'bad key'
  96.     vk & 65535 == 65535
  97.     if vk & 256:
  98.         k.shift = True
  99.     
  100.     if vk & 512:
  101.         k.control = True
  102.     
  103.     if vk & 1024:
  104.         k.meta = True
  105.     
  106.     k.char = chr(vk & 255)
  107.     return k
  108.  
  109.  
  110. def make_KeyPress(char, state, keycode):
  111.     control = state & 12 != 0
  112.     meta = state & 3 != 0
  113.     shift = state & 16 != 0
  114.     if control and char != '\x00':
  115.         char = chr(VkKeyScan(ord(char)) & 255)
  116.     elif control:
  117.         char = chr(keycode)
  118.     
  119.     
  120.     try:
  121.         keyname = code2sym_map[keycode]
  122.     except KeyError:
  123.         keyname = ''
  124.  
  125.     return KeyPress(char, shift, control, meta, keyname)
  126.  
  127. if __name__ == '__main__':
  128.     import startup
  129.  
  130.