(*~\Глагол\Отделы\Обмен\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
(**)                              ОТДЕЛ Ввод;
(*============================================================================*)
(* НАЗНАЧЕНИЕ: ввод от клавиатуры и мышки                                     *)
(*============================================================================*)

ПОСТ
               (* откуда посылка *)
  пустой-  =0;
  клавиши- =1;
  мышка-   =2;
  закрыт-  =3;
               (* управляющие клавиши *)
  пАльт-   =0;
  лАльт-   =1;
  пКонтр-  =2;
  лКонтр-  =3;
  шифт-    =4;
  нумЛок-  =5;
  скролЛок-=6;
  капсЛок- =7;
               (* кнопки у мышки *)
  левая-   =0;
  правая-  =1;
  средняя- =2;
               (* события у мышки *)
  смещение-=0;
  щелк2-   =1;
  прокрут- =2;

ВИД
                                     (* абстрактный опорный вид: пустой набор *)
 нПосылка- = НАБОР КОН;
(*
 нПосылка- = Пустой.Вид;
*)
 нОтКлавиш- = НАБОР(нПосылка)
    код+:ЦЕЛ;                     (* рабочий код клавиши, :=0 после отработки *)
    знак+:ЗНАК;
    упрКнопки+:МНОЖ;
    упрШифт+:КЛЮЧ;                (* есть управление от шифт *)  
    упрКонтр+:КЛЮЧ;               (* есть управление от контр *)
    упрАльт+:КЛЮЧ;                (* есть управление от альт *)
    мкод+:ЦЕЛ;                    (* машинный код клавиши *)
  КОН;

 нОтМышки- = НАБОР(нПосылка)
    к+,с+:ЦЕЛ;    
    кнопки+:МНОЖ;
    упрКнопки+:МНОЖ; 
    события+:МНОЖ;
    прокрут+:ЦЕЛ;                 (* щелчков колёсика *)
    отработана+:КЛЮЧ;             (* выставляет получатель *)
  КОН;

КОН Ввод.
