home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 113 / EnigmaAmiga113CD.iso / software / sviluppo / easygui_os12 / source / easyplugins / rawkey_os12.e < prev    next >
Encoding:
Text File  |  2000-06-11  |  4.1 KB  |  219 lines

  1. /*
  2.  
  3.   $VER: RawKey PlugIn 1.00 - By Fabio Rotondo (fsoft@intercom.it)
  4.  
  5.         Part of the EasyPLUGINs package
  6.  
  7.   V1.00 - Initial Release
  8.  
  9. */
  10.  
  11. OPT MODULE
  12. OPT EXPORT
  13. OPT PREPROCESS
  14.  
  15. -> RST: Added conditional EASY_OS12 support
  16. #define EASY_OS12
  17.  
  18. #ifdef EASY_OS12
  19.   MODULE 'tools/easygui_os12'
  20. #endif
  21. #ifndef EASY_OS12
  22.   OPT OSVERSION=37
  23.   MODULE 'tools/easygui'
  24. #endif
  25.  
  26. MODULE 'intuition/intuition',
  27.        'graphics/text',
  28.        'workbench/workbench'
  29.  
  30. CONST PLA_KEY_UP = 76, PLA_KEY_DOWN = 77, PLA_KEY_RIGHT = 78, PLA_KEY_LEFT = 79,
  31.       PLA_KEY_CONTROL = 99,
  32.       PLA_KEY_LSHIFT = 96, PLA_KEY_RSHIFT = 97,
  33.       PLA_KEY_LALT = 100, PLA_KEY_RALT = 101,
  34.       PLA_KEY_LAMIGA = 102, PLA_KEY_RAMIGA = 103,
  35.       PLA_KEY_HELP = 95,
  36.       PLA_KEY_USERDATA = 1
  37.  
  38. ENUM PLA_KEY_F1=80, PLA_KEY_F2, PLA_KEY_F3, PLA_KEY_F4, PLA_KEY_F5, PLA_KEY_F6, PLA_KEY_F7, PLA_KEY_F8, PLA_KEY_F9, PLA_KEY_F10
  39.  
  40. OBJECT rawkey OF plugin
  41.   PRIVATE
  42.   up
  43.   down
  44.   left
  45.   right
  46.   control
  47.   lshift
  48.   rshift
  49.   lalt
  50.   ralt
  51.   lamiga
  52.   ramiga
  53.   help
  54.   f1
  55.   f2
  56.   f3
  57.   f4
  58.   f5
  59.   f6
  60.   f7
  61.   f8
  62.   f9
  63.   f10
  64.  
  65.   user
  66. ENDOBJECT
  67.  
  68. PROC init() OF rawkey
  69.   self.up:=NIL
  70.   self.down:=NIL
  71.   self.left:=NIL
  72.   self.right:=NIL
  73.   self.control:=NIL
  74.   self.lshift:=NIL
  75.   self.rshift:=NIL
  76.   self.lalt:=NIL
  77.   self.ralt:=NIL
  78.   self.lamiga:=NIL
  79.   self.ramiga:=NIL
  80.   self.help:=NIL
  81.   self.f1:=NIL
  82.   self.f2:=NIL
  83.   self.f3:=NIL
  84.   self.f4:=NIL
  85.   self.f5:=NIL
  86.   self.f6:=NIL
  87.   self.f7:=NIL
  88.   self.f8:=NIL
  89.   self.f9:=NIL
  90.   self.f10:=NIL
  91.  
  92.   self.user:=NIL
  93. ENDPROC
  94.  
  95. PROC end() OF rawkey IS EMPTY
  96.  
  97. PROC will_resize() OF rawkey IS 0,0
  98.  
  99. PROC min_size(ta:PTR TO textattr, fontheight) OF rawkey IS 0,0
  100.  
  101. PROC render(ta:PTR TO textattr, x, y, xs, ys, win:PTR TO window) OF rawkey IS EMPTY
  102.  
  103. PROC clear_render(win:PTR TO window) OF rawkey IS EMPTY
  104.  
  105. PROC message_test(imsg:PTR TO intuimessage, win:PTR TO window) OF rawkey
  106.   DEF c, x
  107.  
  108.   IF (imsg.class=IDCMP_RAWKEY)
  109.     c:=imsg.code
  110.     SELECT c
  111.       CASE PLA_KEY_UP
  112.         x:=self.up
  113.       CASE PLA_KEY_DOWN
  114.         x:=self.down
  115.       CASE PLA_KEY_RIGHT
  116.         x:=self.right
  117.       CASE PLA_KEY_LEFT
  118.         x:=self.left
  119.       CASE PLA_KEY_CONTROL
  120.         x:=self.control
  121.       CASE PLA_KEY_LSHIFT
  122.         x:=self.lshift
  123.       CASE PLA_KEY_RSHIFT
  124.         x:=self.rshift
  125.       CASE PLA_KEY_LALT
  126.         x:=self.lalt
  127.       CASE PLA_KEY_RALT
  128.         x:=self.ralt
  129.       CASE PLA_KEY_LAMIGA
  130.         x:=self.lamiga
  131.       CASE PLA_KEY_RAMIGA
  132.         x:=self.ramiga
  133.       CASE PLA_KEY_HELP
  134.         x:=self.help
  135.       CASE PLA_KEY_F1
  136.         x:=self.f1
  137.       CASE PLA_KEY_F2
  138.         x:=self.f2
  139.       CASE PLA_KEY_F3
  140.         x:=self.f3
  141.       CASE PLA_KEY_F4
  142.         x:=self.f4
  143.       CASE PLA_KEY_F5
  144.         x:=self.f5
  145.       CASE PLA_KEY_F6
  146.         x:=self.f6
  147.       CASE PLA_KEY_F7
  148.         x:=self.f7
  149.       CASE PLA_KEY_F8
  150.         x:=self.f8
  151.       CASE PLA_KEY_F9
  152.         x:=self.f9
  153.       CASE PLA_KEY_F10
  154.         x:=self.f10
  155.     ENDSELECT
  156.  
  157.     IF x THEN x(self.user)
  158.   ENDIF
  159. ENDPROC FALSE
  160.  
  161. PROC message_action(class, qual, code, win:PTR TO window) OF rawkey IS EMPTY
  162.  
  163. PROC setattrs(tags:PTR TO LONG) OF rawkey
  164.   DEF t,v
  165.  
  166.   WHILE (t:=Long(tags++))
  167.     v:=Long(tags++)
  168.     SELECT t
  169.       CASE PLA_KEY_UP
  170.         self.up:=v
  171.       CASE PLA_KEY_DOWN
  172.         self.down:=v
  173.       CASE PLA_KEY_RIGHT
  174.         self.right:=v
  175.       CASE PLA_KEY_LEFT
  176.         self.left:=v
  177.       CASE PLA_KEY_CONTROL
  178.         self.control:=v
  179.       CASE PLA_KEY_LSHIFT
  180.         self.lshift:=v
  181.       CASE PLA_KEY_RSHIFT
  182.         self.rshift:=v
  183.       CASE PLA_KEY_LALT
  184.         self.lalt:=v
  185.       CASE PLA_KEY_RALT
  186.         self.ralt:=v
  187.       CASE PLA_KEY_LAMIGA
  188.         self.lamiga:=v
  189.       CASE PLA_KEY_RAMIGA
  190.         self.ramiga:=v
  191.       CASE PLA_KEY_HELP
  192.         self.help:=v
  193.       CASE PLA_KEY_F1
  194.         self.f1:=v
  195.       CASE PLA_KEY_F2
  196.         self.f2:=v
  197.       CASE PLA_KEY_F3
  198.         self.f3:=v
  199.       CASE PLA_KEY_F4
  200.         self.f4:=v
  201.       CASE PLA_KEY_F5
  202.         self.f5:=v
  203.       CASE PLA_KEY_F6
  204.         self.f6:=v
  205.       CASE PLA_KEY_F7
  206.         self.f7:=v
  207.       CASE PLA_KEY_F8
  208.         self.f8:=v
  209.       CASE PLA_KEY_F9
  210.         self.f9:=v
  211.       CASE PLA_KEY_F10
  212.         self.f10:=v
  213.       CASE PLA_KEY_USERDATA
  214.         self.user:=v
  215.     ENDSELECT
  216.   ENDWHILE
  217. ENDPROC
  218.  
  219.