作者ric2k1 (Ric)
看板EE_DSnP
標題[情報] Keyboard mapping
時間Fri Mar 27 21:36:00 2009
[注意: 無論你怎麼改, 千萬不要改到 "#ifdef TA_KB_SETTING" 的部份!!]
有好幾個人問我相同的問題, 所以我在這邊一起回答一下:
就是他們的 keyboard mapping 大部分跟 reference code 一樣,
除了:
Home 是: 27 79 72 (原先: 27 91 49 126)
End 是: 27 79 70 (原先: 27 91 52 126)
既然大不分都跟 default 的 code 一樣,
我建議就將 #ifdef TA_KB_SETTING 的部份直接 copy 下來,
然後貼到 #else 的部分去直接取代, 然後再改.
1. 由於你的 Home/End 的第二個 code 跟其他特殊鍵不同,
你首先必須在 "enum ParseChar" (charDef.h) 中宣告新的 mod key:
HOME_KEY_COMBO = 79,
2. Home/End 的 distinguishing keys 與原先不同, 所以將原先的 comment out 掉,
加入:
HOME_KEY = 72 + HOME_KEY_SHIFT,
END_KEY = 70 + HOME_KEY_SHIFT,
其中 HOME_KEY_SHIFT 可定義為:
HOME_KEY_SHIFT = 1 << 10,
3. 然後在 charDef.cpp 中加入:
case ESC_KEY: {
char combo = myGetChar(istr);
if (combo == char(MOD_KEY_COMBO)) {
.... (不用改)
}
else if (combo == char(HOME_KEY_COMBO)) { // 加這裡
char kk = myGetChar(istr);
if (kk == char(HOME_KEY) || kk == char(END_KEY))
return (int(kk) + HOME_KEY_SHIFT);
else // should not happen
assert(0);
}
4. 將 Makefile 中的 -DTA_KB_SETTING 那行 comment out 掉!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.224.45.43
1F:推 sa901119:步驟一的 (cmdParser.h) 應為 CharDef.h 哦 03/27 21:43
※ 編輯: ric2k1 來自: 61.224.45.43 (03/27 21:55)
2F:→ ric2k1:哦, 看錯 homework.... 03/27 21:55
3F:推 sobluesk:4.是comment out掉再重新寫上CFLAGS=-g -Wall嗎? 03/28 01:03
4F:推 sa901119:在被comment out掉的那行前面好像就有CFLAGS=-g -Wall了 03/28 07:57