Mouse Gestures應(yīng)該可以翻譯成鼠標(biāo)手勢(shì),是指用鼠標(biāo)做一個(gè)動(dòng)作,比如向右水平拖動(dòng)一段距離,以此來(lái)啟動(dòng)某一個(gè)預(yù)先設(shè)置好的命令。Mouse Gestures作為一個(gè)輔助的命令啟動(dòng)方式,可以大大提高的軟件的易用性。
第一次接觸Mouse Gestures是因?yàn)槭褂肙ptimoz編寫的Firefox的插件Mouse Gestures. 感覺(jué)幫助非常大。比如向上托一下打開(kāi)一個(gè)新的Tab頁(yè)面,手就不用離開(kāi)鼠標(biāo)去按Ctrl+T,或者移動(dòng)鼠標(biāo)去點(diǎn)菜單。很難準(zhǔn)確描述Mouse Gestures帶來(lái)的體驗(yàn),相信使用過(guò)的人Firefox Mouse Gestures插件的人都深有體會(huì)。
在思考易博客戶端后續(xù)開(kāi)發(fā)的功能的過(guò)程中,想到要做進(jìn)Mouse Gestures的功能。進(jìn)一步思考,Mouse Gestures的功能應(yīng)該不局限于某一個(gè)程序,所以想做成Eclipse RCP的一個(gè)Plugin的形式。
要實(shí)現(xiàn)這個(gè)Plugin,有3個(gè)問(wèn)題還需要解決,
- SWT版Mouse Gestures的基本識(shí)別功能,
- 找出RCP程序的所有Actions,以便用戶定制Gestures啟動(dòng)的命令,這里打算利用org.eclipse.ui.commands擴(kuò)展點(diǎn)。
- 每個(gè)Views和Editors可以有自己的獨(dú)立Mouse Gestures的定義. 一個(gè)Global的Gestures定義針對(duì)整個(gè)程序的。如果拋開(kāi)RCP的框架,更一般化的定義可以是每個(gè)Control有自己的Gestures定義,Top Level Shell的Gestures定義就是RCP中Global的Mouse Gestures的定義。
另外,作為Mouse Gestures的擴(kuò)展,可以考慮實(shí)現(xiàn)手勢(shì)識(shí)別的功能,通過(guò)一個(gè)Webcam的幫助,用某一個(gè)手勢(shì)啟動(dòng)常用的命令。
這只是我的一些初步的想法,還不是很成熟。希望有經(jīng)驗(yàn)的朋友們能給于指正和幫助。