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的帮助,用某一个手势启动常用的命令。
这只是我的一些初步的想法,还不是很成熟。希望有经验的朋友们能给于指正和帮助。