home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 18 / CD_ASCQ_18_111294_W.iso / dos / prg / c / x_lib10 / xk.doc < prev    next >
Text File  |  1994-10-20  |  7KB  |  228 lines

  1. ════════════════════════════════════════════════════════════════════════════
  2. LE GESTIONNAIRE DE CLAVIER
  3. ────────────────────────────────────────────────────────────────────────────
  4.  
  5. présentation
  6. ────────────
  7.  
  8.     Le gestionnaire de clavier offre un ensemble de services encapsulés dans
  9.     la classe XKeyMgr et accessibles via son instance globale xk.
  10.  
  11.     La classe XKeyMgr n'est constituée que de membres statiques et n'est pas
  12.     dérivable.
  13.  
  14.  
  15. construction du gestionnaire
  16. ────────────────────────────
  17.  
  18.     Le gestionnaire est construit automatiquement avant la fonction main()
  19.     grâce à son instance globale xk.
  20.  
  21.     Après sa construction, un appel à init() est nécessaire pour initialiser
  22.     le gestionnaire.
  23.  
  24.  
  25. destruction du gestionnaire
  26. ───────────────────────────
  27.  
  28.     Le gestionnaire est détruit automatiquement en fin d'exécution.
  29.  
  30.     Avant sa destruction, un appel à init() est nécessaire pour quitter le
  31.     gestionnaire.
  32.  
  33.  
  34. événements en provenance du clavier
  35. ───────────────────────────────────
  36.  
  37.     Les événements sont conservés dans la structure XKey de format :
  38.  
  39.             int     val     ; idenficateur de l'événement
  40.             int     key     ; caractère récupéré
  41.  
  42.     Le gestionnaire reconnaît les événements suivants :
  43.  
  44.             -- xk_IDLE
  45.                 aucun caractère récupéré
  46.                 key : indéfini
  47.  
  48.             -- xk_CHAR
  49.                 un caractère récupéré
  50.  
  51.     Si un caractère normal est récupéré, sa partie haute est annulée et sa
  52.     valeur est donc inférieure à 256.
  53.  
  54.     Si une touche étendue est récupérée, sa partie basse est toujours à zéro
  55.     et sa valeur supérieure à 255.
  56.  
  57.  
  58. indicateur ctrl-break
  59. ─────────────────────
  60.  
  61.     L'utilisation de la combinaison ctrl-break génére le caractère nul en
  62.     même temps qu'elle arme un indicateur du BIOS.
  63.  
  64.     Le gestionnaire refusant de prendre en compte le caractère nul, le seul
  65.     moyen de tester ctrl-break est d'utiliser stop().
  66.  
  67.  
  68. constantes utiles
  69. ─────────────────
  70.  
  71.     Le fichier xk.h définit un certain nombre de constantes pour les touches
  72.     normales et étendues les plus usuelles :
  73.  
  74.     ╒══════════════════════════════╤════════════════════════════════════╕
  75.     │   constante   utilisation    │    constante   utilisation         │
  76.     ├──────────────────────────────┼────────────────────────────────────┤
  77.     │   xk_cA..Z    <ctrl-A..Z>    │                                    │
  78.     │   xk_aA..Z    <alt-A..Z>     │                                    │
  79.     │   xk_a1..0    <alt-1..0>     │                                    │
  80.     │   xk_F...     <F1..10>       │    xk_sF...    <shift-F1..10>      │
  81.     │   xk_aF...    <alt-F1..10>   │    xk_cF...    <ctrl-F1..10>       │
  82.     │   xk_BACK     <back>         │    xk_cBACK    <ctrl-back>         │
  83.     │   xk_RET      <return>       │    xk_cRET     <ctrl-return>       │
  84.     │   xk_SPC      <space>        │                                    │
  85.     │   xk_ESC      <escape>       │                                    │
  86.     │   xk_TAB      <tab>          │    xk_sTAB     <shift-tab>         │
  87.     │   xk_HOME     <home>         │    xk_cHOME    <ctrl-home>         │
  88.     │   xk_UP       <up>           │                                    │
  89.     │   xk_PGUP     <pgup>         │    xk_cPGUP    <ctrl-pgup>         │
  90.     │   xk_LEFT     <left>         │    xk_cLEFT    <ctrl-left>         │
  91.     │   xk_RIGHT    <right>        │    xk_cRIGHT   <ctrl-right>        │
  92.     │   xk_END      <end>          │    xk_cEND     <ctrl-end>          │
  93.     │   xk_DOWN     <down>         │                                    │
  94.     │   xk_PGDN     <pgdn>         │    xk_cPGDN    <ctrl-pgdn>         │
  95.     └──────────────────────────────┴────────────────────────────────────┘
  96.  
  97.  
  98. index des fonctions
  99. ───────────────────
  100.  
  101.     ╒═══════════════════════════════════════════════════════════════════╕
  102.     │   fonction    utilisation                                         │
  103.     ├───────────────────────────────────────────────────────────────────┤
  104.     │   init        initialise ou quitte le gestionnaire                │
  105.     │   next        renvoie le prochain événement                       │
  106.     │   stat        renvoie l'état du clavier                           │
  107.     │   stop        renvoie l'état de l'indicateur ctrl-break           │
  108.     └───────────────────────────────────────────────────────────────────┘
  109.  
  110.  
  111. ════════════════════════════════════════════════════════════════════════════
  112. XKeyMgr::init                                                  public:static
  113. initialise ou quitte le gestionnaire
  114. ────────────────────────────────────────────────────────────────────────────
  115.  
  116. utilisation
  117.  
  118.     void    init (int cmd)
  119.  
  120. paramètres
  121.  
  122.     cmd     commande d'initialisation
  123.  
  124. description
  125.  
  126.     init() initialise ou quitte le gestionnaire.
  127.  
  128.     Si cmd est non nul, init() initialise le gestionnaire par les étapes :
  129.  
  130.             -- sauvegarde des vecteurs d'interruption 0x1B et 0x23 assurant
  131.                l'arrêt par ctrl-break,
  132.  
  133.             -- effacement de l'indicateur ctrl-break par stop().
  134.  
  135.     Si cmd est nul, init() quitte le gestionnaire par les étapes :
  136.  
  137.             -- restauration des vecteurs d'interruption 0x1B et 0x23.
  138.  
  139.     init() est sans effet si l'état demandé est déjà celui du gestionnaire.
  140.  
  141. voir aussi
  142.  
  143.     XKeyMgr::stop()
  144.  
  145.  
  146. ════════════════════════════════════════════════════════════════════════════
  147. XKeyMgr::next                                                  public:static
  148. renvoie le prochain événement
  149. ────────────────────────────────────────────────────────────────────────────
  150.  
  151. utilisation
  152.  
  153.     int     next (XKey& key)
  154.  
  155. paramètres
  156.  
  157.     key     référence de XKey
  158.  
  159. assertions
  160.  
  161.     key     != 0
  162.  
  163. description
  164.  
  165.     next() renvoie le prochain événement en provenance du clavier.
  166.  
  167.     next() appelle simplement stat() pour déterminer si un événement est
  168.     disponible depuis le clavier.
  169.  
  170. voir aussi
  171.  
  172.     XKeyMgr::stat()
  173.  
  174.  
  175. ════════════════════════════════════════════════════════════════════════════
  176. XKeyMgr::stat                                                  public:static
  177. renvoie l'état du clavier
  178. ────────────────────────────────────────────────────────────────────────────
  179.  
  180. utilisation
  181.  
  182.     int     stat (XKey& key)
  183.  
  184. paramètres
  185.  
  186.     key     référence de XKey
  187.  
  188. assertions
  189.  
  190.     key     != 0
  191.  
  192. description
  193.  
  194.     stat() renvoie l'état du clavier dans la structure key.
  195.  
  196.     Si un caractère est présent dans le tampon du clavier, stat() le retire
  197.     pour le conserver dans key.key et place xk_CHAR dans key.val.
  198.  
  199.     Si aucun caractère n'est en attente, stat() place xk_IDLE dans key.val
  200.     sans affecter key.key.
  201.  
  202.     stat() renvoie l'identificateur key.val.
  203.  
  204. voir aussi
  205.  
  206.     XKeyMgr::next()
  207.  
  208.  
  209. ════════════════════════════════════════════════════════════════════════════
  210. XKeyMgr::stop                                                  public:static
  211. renvoie l'état de l'indicateur ctrl-break
  212. ────────────────────────────────────────────────────────────────────────────
  213.  
  214. utilisation
  215.  
  216.     int     stop (void)
  217.  
  218. description
  219.  
  220.     stop() renvoie l'état de l'indicateur ctrl-break, soit une valeur non
  221.     nulle si la combinaison ctrl-break a été utilisée depuis le précédent
  222.     appel de la fonction, soit 0 si l'indicateur n'est pas armé.
  223.  
  224.     Dans tous les cas, l'indicateur est effacé.
  225.  
  226.  
  227.  
  228.