如何在cuis smalltalk交换鼠标按钮?

时间:2017-05-30 18:07:28

标签: smalltalk

我想在Cuis smalltalk交换按钮使用。 目前,鼠标右键显示alo,而中间按钮显示上下文菜单。 是否有可能改变这种行为?

2 个答案:

答案 0 :(得分:4)

您可以更改图像中的ButtonDecodeTable,也可以告诉VM使用不同的鼠标映射。这取决于平台:

  • Windows:在VM的3ButtonMouse文件中切换*.ini设置,方法是按F2或手动,请参阅http://squeakvm.org/win32/settings.html
  • Unix:传递命令行参数-swapbtn
  • Mac:编辑Info.plist
  • 中的按钮映射

答案 1 :(得分:3)

好的,我找到了。

似乎在方法installMouseDecodeTable中 我甚至需要在Windows上交换DecodeTable位 (我正在使用Windows 7,并且交换了按钮)

"Create a decode table that swaps the lowest-order 2 bits if not on Windows.
This is to make right mouse button be the mouseButton2, i.e. open menus, and middle (wheel) button open halos (mouseButton3).
See #processEvent:"

如果我强制切换,交换位(例如使用虚拟平台名称或完全删除测试),则按钮可正常工作。

(您需要保存图像,关闭并重新打开程序)

ButtonDecodeTable _ Smalltalk platformName = 'Dummy'
    ifTrue: [ ByteArray withAll: (0 to: 255) ]
    ifFalse: [
        ByteArray withAll:
            ((0 to: 255) collect: [ :ea |
                ((ea bitAnd: 1) << 1 bitOr: (ea bitAnd: 2) >> 1) bitOr: (ea bitAnd: 252) ]) ]