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