home *** CD-ROM | disk | FTP | other *** search
/ Power Programming / powerprogramming1994.iso / progtool / pibterm / pibt41s1.arc / GETLKNAM.MOD < prev    next >
Text File  |  1988-02-02  |  5KB  |  106 lines

  1. (*----------------------------------------------------------------------*)
  2. (*      Get_Long_Key_Name --- Get long version of function key name.    *)
  3. (*----------------------------------------------------------------------*)
  4.  
  5. PROCEDURE Get_Long_Key_Name(     Short_Name : AnyStr;
  6.                              VAR Long_Name  : AnyStr );
  7.  
  8. (*----------------------------------------------------------------------*)
  9. (*                                                                      *)
  10. (*     Procedure:  Get_Long_Key_Name                                    *)
  11. (*                                                                      *)
  12. (*     Purpose:    Gets long version of function key name.              *)
  13. (*                                                                      *)
  14. (*     Calling Sequence:                                                *)
  15. (*                                                                      *)
  16. (*        Get_Long_Key_Name(     Short_Name : AnyStr;                   *)
  17. (*                           VAR Long_Name  : AnyStr  );                *)
  18. (*                                                                      *)
  19. (*           Short_Name --- Short version of function key name          *)
  20. (*           Long_Name  --- Long version of function key name           *)
  21. (*                                                                      *)
  22. (*----------------------------------------------------------------------*)
  23.  
  24. VAR
  25.    I         : INTEGER;
  26.    Last_Ch   : CHAR;
  27.    Extended  : BOOLEAN;
  28.    Pg_Found  : BOOLEAN;
  29.  
  30. LABEL 1;
  31.  
  32. BEGIN (* Get_Long_Key_Name *)
  33.  
  34.    Long_Name := '';
  35.    Last_Ch   := ' ';
  36.    Extended  := FALSE;
  37.    Pg_Found  := FALSE;
  38.  
  39.    FOR I := 1 TO LENGTH( Short_Name ) Do
  40.       BEGIN
  41.  
  42.          CASE Short_Name[I] OF
  43.             ' '      : ;
  44.             'X'      : BEGIN
  45.                           Long_Name := Long_Name + 'Ext ';
  46.                           Extended  := TRUE;
  47.                        END;
  48.             'A'      : Long_Name := Long_Name + 'Alt ';
  49.             'C'      : Long_Name := Long_Name + 'Ctrl ';
  50.             'S'      : Long_Name := Long_Name + 'Shift ';
  51.             'K'      : Long_Name := Long_Name + 'Kpd ';
  52.             'N'      : Long_Name := Long_Name + 'Alt ';
  53.             'F'      : Long_Name := Long_Name + 'F';
  54.             'P'      : IF ( NOT Extended ) THEN
  55.                           BEGIN
  56.                              Long_Name := Long_Name + 'PrtSc';
  57.                              GOTO 1;
  58.                           END
  59.                        ELSE
  60.                           BEGIN
  61.                              Long_Name := Long_Name + 'Pg';
  62.                              Pg_Found  := TRUE;
  63.                           END;
  64.             'E'      : IF ( NOT Extended ) THEN
  65.                           BEGIN
  66.                              Long_Name := Long_Name + 'Enter';
  67.                              GOTO 1;
  68.                           END
  69.                        ELSE
  70.                           IF ( Last_Ch = 'D' ) THEN
  71.                              Long_Name := COPY( Long_Name, 1,
  72.                                                 LENGTH( Long_Name ) - 4 ) +
  73.                                                 'Del'
  74.                           ELSE
  75.                              Long_Name := Long_Name + 'End';
  76.             'H'      : Long_Name := Long_Name + 'Home';
  77.             'I'      : Long_Name := Long_Name + 'Ins';
  78.             'U'      : Long_Name := Long_Name + 'Up';
  79.             'D'      : IF ( NOT Pg_Found ) THEN
  80.                           Long_Name := Long_Name + 'Down'
  81.                        ELSE
  82.                           Long_Name := Long_Name + 'Dn';
  83.             'L'      : Long_Name := Long_Name + 'Left';
  84.             'R'      : Long_Name := Long_Name + 'Right';
  85.             'B'      : BEGIN
  86.                           Long_Name := Long_Name + 'Backspace';
  87.                           GOTO 1;
  88.                        END;
  89.             '0'..'9' : BEGIN
  90.                           IF ( Last_Ch IN ['C','S','A'] ) THEN
  91.                              Long_Name := Long_Name + 'F';
  92.                           Long_Name := Long_Name + Short_Name[I];
  93.                        END;
  94.             ELSE  Long_Name := Long_Name + Short_Name[I];
  95.          END (* CASE *);
  96.  
  97.          IF ( Short_Name[I] <> ' ' ) THEN
  98.             Last_Ch := Short_Name[I] ;
  99.  
  100.       END;
  101.  
  102. 1:
  103.    Long_Name[1] := UpCase( Long_Name[1] );
  104.  
  105. END   (* Get_Long_Key_Name *);
  106.