2009/9/9 bread <[email protected]>:
>
>
> On Sep 8, 12:06 pm, limodou <[email protected]> wrote:
>>
>> 我因为没有mac机器,所以对mac的习惯不了解。具体的编辑控件的主要快捷键是定义在mixins/Editor.py中的initKeyShortCut(self)函数中,你可以试着改一下。还有一些是定义在其它的文件中,要看有没有必要进行修改。象菜单上的快捷键是可以在config.ini中重定义的。如果你所说的快捷键不是在菜单中,而是象Editor.py中定义的那样,可以以后考虑写一个插件,用户激活时进行替换。这个可以以后再做。可以先列出要改哪些,怎么改,然后再说如何做成插件。
>
> 我发现一个奇怪的现象,拿C-c (Copy)这个快捷键做例子,这个键位似乎是在Editor.py里面手动定义的。(不知道wxpython有没有
> 自动为editor空间提供默认的键盘快捷键?),但是我在右键菜单中,看到copy功能的键位是绑定到Command+C的。奇怪的是,在菜单栏的
> Edit菜单中,这个功能的键位却又是C-c。我想这是不是跟wxpython的快捷键定义机制有关系,也许C-xxx的键位,在wxpython-
> mac的实现中,会变做为Command-xxx?
>
> 如果您有空的话,能否写信跟您交流一下?我可以顺便贴张截图给您看一下,看应该在什么地方加入对MAC的支持。
>
> 多谢!

定义时是使用字符串的形式,但是在映射时是通过:

    def convert_key(self, keydef):
        f = 0
        ikey = 0
        for k in keydef.split('+'):
            uk = k.upper()
            if uk == 'CTRL':
                f |= wx.stc.STC_SCMOD_CTRL
            elif uk == 'ALT':
                f |= wx.stc.STC_SCMOD_ALT
            elif uk == 'SHIFT':
                f |= wx.stc.STC_SCMOD_SHIFT
            elif keylist.has_key(uk):
                ikey = keylist[uk]
            elif len(uk) == 1:
                ikey = ord(uk)
            else:
                error.error("[TextEditor] Undefined char [%s]" % uk)
                continue
        return f, ikey

我也不是太清楚在mac下是不是wx.stc.STC_SCMOD_CTRL就对应着Command键。

-- 
I like python!
UliPad <<The Python Editor>>: http://code.google.com/p/ulipad/
UliWeb <<simple web framework>>: http://uliwebproject.appspot.com
My Blog: http://hi.baidu.com/limodou

Reply via email to