Ignorieren:
Zeitstempel:
21.03.2010 03:03:18 (vor 9 Jahren)
Autor:
florian
Nachricht:
 
Datei:
1 bearbeitet

Legende:

Unverändert
Hinzugefügt
Entfernt
  • windows/kbdneo2/Quelldateien/kbdneo2.c

    r2202 r2205  
    1 /***************************************************************************\ 
     1/* **************************************************************************\ 
    22* Module Name: KBDNEO2.C 
    33* Deutsches ergonomische Layout Neo 2.0 
    4 \***************************************************************************/ 
     4\************************************************************************** */ 
    55 
    66#include <windows.h> 
     
    1616#endif 
    1717 
    18 /***************************************************************************\ 
    19 * ausVK[] - Virtual Scan Code to Virtual Key conversion table for German 
    20 \***************************************************************************/ 
     18 
     19/* **************************************************************************\ 
     20* ausVK[] - Virtual Scan Code to Virtual Key 
     21\************************************************************************** */ 
    2122 
    2223static ALLOC_SECTION_LDATA USHORT ausVK[] = { 
     
    2930    T30, T31, T32, T33, T34, T35, 
    3031 
    31     /* 
    32      * Right-hand Shift key must have KBDEXT bit set. 
    33      */ 
     32 
     33// Rechtes Shift muss KBDEXT bit haben 
     34 
    3435    T36 | KBDEXT, 
    3536 
     
    3940    T3F, T40, T41, T42, T43, T44, 
    4041 
    41     /* 
    42      * NumLock Key: 
    43      *     KBDEXT     - VK_NUMLOCK is an Extended key 
    44      *     KBDMULTIVK - VK_NUMLOCK or VK_PAUSE (without or with CTRL) 
    45      */ 
    46     T45 | KBDEXT | KBDMULTIVK, 
     42         
     43    /* NumLock Key: 
     44     *     KBDEXT     - VK_NUMLOCK ist Extended key 
     45     *     KBDMULTIVK - VK_NUMLOCK oder VK_PAUSE (mit oder ohne STRG) */ 
     46 
     47        T45 | KBDEXT | KBDMULTIVK, 
    4748 
    4849    T46 | KBDMULTIVK, 
    4950 
     51         
    5052    /* 
    5153     * Number Pad keys: 
     
    5355     *     KBDSPECIAL - require special processing by Windows 
    5456     */ 
    55     T47 | KBDNUMPAD | KBDSPECIAL,   // Numpad 7 (Home) 
     57     
     58        T47 | KBDNUMPAD | KBDSPECIAL,   // Numpad 7 (Home) 
    5659    T48 | KBDNUMPAD | KBDSPECIAL,   // Numpad 8 (Up), 
    5760    T49 | KBDNUMPAD | KBDSPECIAL,   // Numpad 9 (PgUp), 
     
    7578 
    7679}; 
     80 
    7781 
    7882static ALLOC_SECTION_LDATA VSC_VK aE0VscToVk[] = { 
     
    118122}; 
    119123 
     124 
    120125static ALLOC_SECTION_LDATA VSC_VK aE1VscToVk[] = { 
    121126        { 0x1D, Y1D                       },  // Pause 
     
    123128}; 
    124129 
    125 /***************************************************************************\ 
     130 
     131/* **************************************************************************\ 
    126132* aVkToBits[]  - map Virtual Keys to Modifier Bits 
    127133* 
    128 * See kbd.h for a full description. 
    129 \***************************************************************************/ 
     134* Siehe kbd.h für mehr Infos 
     135\************************************************************************** */ 
     136 
    130137// Es wird nicht zwischen linken und/oder rechtem Modifier unterschieden 
     138 
    131139static ALLOC_SECTION_LDATA VK_TO_BIT aVkToBits[] = { 
    132140    { VK_SHIFT          ,       KBDSHIFT        }, 
     
    138146}; 
    139147 
    140 /***************************************************************************\ 
     148 
     149/* **************************************************************************\ 
    141150* aModification[]  - map character modifier bits to modification number 
    142151* 
    143 * See kbd.h for a full description. 
    144 * 
    145 \***************************************************************************/ 
     152* Siehe kbd.h für mehr Infos 
     153\************************************************************************** */ 
    146154 
    147155static ALLOC_SECTION_LDATA MODIFIERS CharModifiers = { 
     
    188196}; 
    189197 
    190 /***************************************************************************\ 
     198 
     199/* **************************************************************************\ 
     200* Spezielle Werte für den VK (Spalte 1) 
     201*     0xff          - Tote Zeichen für obige Zeile 
     202*     0             - Beendet die gesamte Liste 
    191203* 
    192 * aVkToWch2[]  - Virtual Key to WCHAR translation for 2 shift states 
    193 * aVkToWch3[]  - Virtual Key to WCHAR translation for 3 shift states 
    194 * aVkToWch4[]  - Virtual Key to WCHAR translation for 4 shift states 
    195 * aVkToWch5[]  - Virtual Key to WCHAR translation for 5 shift states 
    196 * aVkToWch6[]  - Virtual Key to WCHAR translation for 6 shift states 
    197 * aVkToWch7[]  - Virtual Key to WCHAR translation for 7 shift states 
    198 * aVkToWch8[]  - Virtual Key to WCHAR translation for 8 shift states 
    199 * aVkToWch9[]  - Virtual Key to WCHAR translation for 9 shift states 
     204* Spezielle Werte für Attributes (Spalte 2) 
     205*     CAPLOK    - CAPS-LOCK wirkt auf diese Taste wie SHIFT 
     206*     KANALOK   - Mod4-LOCK wirkt auf diese Taste wie Mod4 
    200207* 
    201 * Table attributes: Unordered Scan, null-terminated 
    202 * 
    203 * Search this table for an entry with a matching Virtual Key to find the 
    204 * corresponding unshifted and shifted WCHAR characters. 
    205 * 
    206 * Special values for VirtualKey (column 1) 
    207 *     0xff          - dead chars for the previous entry 
    208 *     0             - terminate the list 
    209 * 
    210 * Special values for Attributes (column 2) 
    211 *     CAPLOK bit    - CAPS-LOCK affect this key like SHIFT 
    212 * 
    213 * Special values for wch[*] (column 3 & 4) 
    214 *     WCH_NONE      - No character 
    215 *     WCH_DEAD      - Dead Key (diaresis) or invalid (US keyboard has none) 
    216 *     WCH_LGTR      - Ligature (generates multiple characters) 
    217 * 
    218 \***************************************************************************/ 
     208* Spezielle Werte für wch[*] 
     209*     WCH_NONE      - Keine Belegung 
     210*     WCH_DEAD      - Totes Zeichen 
     211*     WCH_LGTR      - Ligatur 
     212\************************************************************************** */ 
    219213 
    220214static ALLOC_SECTION_LDATA VK_TO_WCHARS6 aVkToWch6[] = { 
     
    295289}; 
    296290 
    297 // Put this last so that VkKeyScan interprets number characters 
    298 // as coming from the main section of the kbd  before considering 
    299 // the numpad. 
    300  
     291// Numpad-Belegung muss zum Schluss kommen 
    301292// Entgegen der neo20.txt vorgesehene Belegung 1,2,3,4,5,6 ist hier 1,4,3,2 umgesetzt: 
    302  
    303  
    304293static ALLOC_SECTION_LDATA VK_TO_WCHARS4 aVkToWch4[] = { 
    305294//                              | CapsLock      |                       | SHIFT         | KANA          | NEU           | 
     
    323312}; 
    324313 
     314 
    325315// Hier müssen die verwendeten WChar_Tables vorkommen; Numpad MUSS letzte Zeile sein. 
    326316static ALLOC_SECTION_LDATA VK_TO_WCHAR_TABLE aVkToWcharTable[] = { 
     
    332322}; 
    333323 
    334 /***************************************************************************\ 
     324 
     325/* **************************************************************************\ 
    335326* aKeyNames[], aKeyNamesExt[]  - Virtual Scancode to Key Name tables 
    336327* 
    337328* Table attributes: Ordered Scan (by scancode), null-terminated 
    338329* 
    339 * Only the names of Extended, NumPad, Dead and Non-Printable keys are here. 
    340 * (Keys producing printable characters are named by that character) 
    341 \***************************************************************************/ 
     330* Nur für Tasten, die keine Zeichen erzeugen, Tasten die Zeichen erzeugen 
     331* werden danach benannt 
     332\************************************************************************** */ 
    342333 
    343334static ALLOC_SECTION_LDATA VSC_LPWSTR aKeyNames[] = { 
     
    385376}; 
    386377 
     378 
    387379static ALLOC_SECTION_LDATA VSC_LPWSTR aKeyNamesExt[] = { 
    388380    0x1c,    L"EINGABE (ZEHNERTASTATUR)", 
     
    411403}; 
    412404 
     405 
    413406static ALLOC_SECTION_LDATA DEADKEY_LPWSTR aKeyNamesDead[] = { 
    414407//Tottaste 1 (links neben 1) 
     
    427420    L"\x1ffe"    L"SPIRITUS_ASPER", 
    428421    L"\x00AF"    L"MAKRON", 
    429          
     422 
    430423//Tottaste 3 (rechts neben „ß“) 
    431424    L"\x00B4"    L"AKUT", 
     
    434427    L"\x02DD"    L"DOPPEL_AKUT",  
    435428    L"\x1fbf"    L"SPIRITUS_LENIS", 
    436     L"\x02D8"    L"BREVE",       
    437     
     429    L"\x02D8"    L"BREVE",          
    438430    NULL 
    439431}; 
     432 
    440433 
    441434static ALLOC_SECTION_LDATA DEADKEY aDeadKey[] = { 
     
    445438//     
    446439//    Bei Doppelbelegungen wird erster Treffer genommen 
    447 //     
    448  
     440// 
     441// 
    449442//Deadkeys 
    450443// Nachfolgend Tafeln für die diakritschen Zeichen 
     
    484477DEADTRANS( L'Z'   , L'^'   , 0x1e90 , 0x0000), 
    485478DEADTRANS( L'z'   , L'^'   , 0x1e91 , 0x0000), 
    486 DEADTRANS( L'?'   , L'^'   , 0x02c0 , 0x0000),  // ab hier lang.module  
     479DEADTRANS( L'?'   , L'^'   , 0x02c0 , 0x0000), // ab hier lang.module  
    487480DEADTRANS( 0x00d7 , L'^'   , 0x02c0 , 0x0000), 
    488 DEADTRANS( 0x03b1 , L'^'   , 0x1d45 , 0x0000),   //Greek_alpha   
    489 DEADTRANS( 0x03b5 , L'^'   , 0x1d4b , 0x0000),   //Greek_epsilon 
    490 DEADTRANS( 0x03c5 , L'^'   , 0x1db7 , 0x0000),   //Greek_upsilon 
    491 DEADTRANS( 0x03d5 , L'^'   , 0x1db2 , 0x0000),   // Ende lang.module 
    492 DEADTRANS( L'1'   , L'^'   , 0x00b9 , 0x0000),  //ab hier hochgestelltes 
     481DEADTRANS( 0x03b1 , L'^'   , 0x1d45 , 0x0000), //Greek_alpha   
     482DEADTRANS( 0x03b5 , L'^'   , 0x1d4b , 0x0000), //Greek_epsilon 
     483DEADTRANS( 0x03c5 , L'^'   , 0x1db7 , 0x0000), //Greek_upsilon 
     484DEADTRANS( 0x03d5 , L'^'   , 0x1db2 , 0x0000), // Ende lang.module 
     485DEADTRANS( L'1'   , L'^'   , 0x00b9 , 0x0000), //ab hier hochgestelltes 
    493486DEADTRANS( L'2'   , L'^'   , 0x00b2 , 0x0000), 
    494487DEADTRANS( L'3'   , L'^'   , 0x00b3 , 0x0000), 
     
    508501 
    509502//Caron (ferfig für en_US.UTF-8 und lang.module) 
    510 DEADTRANS( L' '   , 0x02c7 , 0x02c7 , 0x0000),  //Caron  
    511 DEADTRANS( 0x02c7 , 0x02c7 , 0x030C , 0x0000),  //2x für Combining 
     503DEADTRANS( L' '   , 0x02c7 , 0x02c7 , 0x0000), //Caron  
     504DEADTRANS( 0x02c7 , 0x02c7 , 0x030C , 0x0000), //2x für Combining 
    512505DEADTRANS( L'A'   , 0x02c7 , 0x01CD , 0x0000), 
    513506DEADTRANS( L'a'   , 0x02c7 , 0x01CE , 0x0000), 
     
    589582 
    590583//Punkt Drüber & Mittenpunkt  (ferfig für en_US.UTF-8 und lang.module) 
    591 DEADTRANS( L' '   , 0x02d9 , 0x02d9 , 0x0000),  //Punkt Drüber 
    592 DEADTRANS( 0x02d9 , 0x02d9 , 0x0307 , 0x0000),  //2x für Combining  
    593 DEADTRANS( L'L'   , 0x02d9 , 0x013F , 0x0000),  //Mittenpunkt 
    594 DEADTRANS( L'l'   , 0x02d9 , 0x0140 , 0x0000),  //Mittenpunkt 
    595 DEADTRANS( 0x017f , 0x02d9 , 0x1E9B , 0x0000),  // Lang-s mit Punkt drüber 
     584DEADTRANS( L' '   , 0x02d9 , 0x02d9 , 0x0000), //Punkt Drüber 
     585DEADTRANS( 0x02d9 , 0x02d9 , 0x0307 , 0x0000), //2x für Combining  
     586DEADTRANS( L'L'   , 0x02d9 , 0x013F , 0x0000), //Mittenpunkt 
     587DEADTRANS( L'l'   , 0x02d9 , 0x0140 , 0x0000), //Mittenpunkt 
     588DEADTRANS( 0x017f , 0x02d9 , 0x1E9B , 0x0000), // Lang-s mit Punkt drüber 
    596589DEADTRANS( L'A'   , 0x02d9 , 0x0226 , 0x0000), 
    597590DEADTRANS( L'a'   , 0x02d9 , 0x0227 , 0x0000), 
     
    681674 
    682675//Punkt Darunter (ferfig für en_US.UTF-8 und lang.module) 
    683 DEADTRANS( L' '   , L'.' , L'.'     , 0x0000),  //Puntk darunter 
    684 DEADTRANS( L'.'   , L'.' , 0x0323   , 0x0000),  //2x für Combining 
     676DEADTRANS( L' '   , L'.' , L'.'     , 0x0000), //Punkt darunter 
     677DEADTRANS( L'.'   , L'.' , 0x0323   , 0x0000), //2x für Combining 
    685678DEADTRANS( L'A'   , L'.' , 0x1ea0   , 0x0000), 
    686679DEADTRANS( L'a'   , L'.' , 0x1ea1   , 0x0000), 
     
    34313424DEADTRANS(      0x0338  ,       0x22B5  ,       0x22ED  ,       0x0000), 
    34323425DEADTRANS(      0x0338  ,       0x2ADD  ,       0x2ADC  ,       0x0000), 
    3433  
    3434  
    3435  
    3436  
    3437  
    3438  
    3439  
    3440  
    3441  
    34423426    0, 0 
    34433427}; 
     
    34453429 
    34463430static ALLOC_SECTION_LDATA KBDTABLES KbdTables = { 
    3447 /* 
    3448 * Modifier keys 
    3449 */ 
     3431// Modifier keys 
     3432 
    34503433    &CharModifiers, 
    34513434 
    3452 /* 
    3453 * Characters tables 
    3454 */ 
     3435         
     3436// Characters tables 
     3437 
    34553438    aVkToWcharTable, 
    34563439 
    3457 /* 
    3458 * Diacritics 
    3459 */ 
     3440         
     3441// Diakritika vorhanden 
     3442 
    34603443    aDeadKey, 
    34613444 
    3462 /* 
    3463 * Names of Keys 
    3464 */ 
     3445         
     3446// Namen der Keys 
     3447 
    34653448    aKeyNames, 
    34663449    aKeyNamesExt, 
    34673450    aKeyNamesDead, 
    34683451 
    3469 /* 
    3470 * Scan codes to Virtual Keys 
    3471 */ 
     3452         
     3453// Scancodes zu Virtual Keys 
     3454 
    34723455    ausVK, 
    34733456    sizeof(ausVK) / sizeof(ausVK[0]), 
     
    34753458    aE1VscToVk, 
    34763459 
    3477 /* 
    3478 * Locale-specific special processing 
    3479 * KLLF_ALTGR damit AltGr = Strg+Alt  
    3480 */ 
     3460         
     3461// KLLF_ALTGR damit AltGr = Strg+Alt  
     3462 
    34813463    MAKELONG(KLLF_ALTGR, KBD_VERSION), 
    34823464 
    3483 /* 
    3484 * Ligatures 
    3485 */ 
     3465         
     3466// keine Ligaturen 
     3467 
    34863468    0, 
    34873469    0, 
     
    34893471}; 
    34903472 
     3473 
    34913474PKBDTABLES KbdLayerDescriptor(VOID) 
    34923475{ 
Hinweis: Hilfe zur Verwendung der Changeset-Ansicht finden Sie unter TracChangeset.