event-handling - 在Morphic GUI中进行事件传播

标签 event-handling smalltalk squeak morphic

我有一个Squeak Morphic GUI图像,其中包含一些透明部分,因此不应接受任何mouseevents等,而只能是可见的,但在其他变形之前必须可见。

这就是为什么我认为将出现的mouseevent传播到基础变体会很有用的原因。有谁知道我的问题的解决方案或解决该问题的其他建议。

    V                         <- mouseDownEvent
_____________________________ <- transparent image (BorderedMorph)
  _____    _____     _____
_|     |___|    |___|     |__ <- buttons waiting for click and drop events

_____________________________ <- basic morph

我希望能说明我的问题。

最佳答案

我能想到的最好的事情是遵循以下几条原则(以增加平滑度的顺序,并以减少工作可能性的顺序)

  • 记录事件,将透明图像移开,然后重播事件。这似乎是一种效率低下且效果不佳的方法。
  • 以某种方式跟踪透明图像背后的焦点,并将事件传递给它。我对所讨论的库不熟悉,所以我不知道是否可以那样做。如果您可以控制其他层,则很可能是这样。 (您可以使用mouseDownEvent直接调用它们的“发生鼠标事件”功能,尽管您仍然必须确定接收该事件的人)。
  • 只需将其声明为不会在任何可用级别将鼠标事件传递给它的东西即可。 OSD窗口通常会执行此操作,我不确定如何执行此操作。如果您可以这样做,我会建议您...但是考虑到您在问这个问题,您可能不会。
  • 关于event-handling - 在Morphic GUI中进行事件传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2093988/

    相关文章:

    java - 使用 JavaFX 在任何地方处理鼠标事件

    model-view-controller - 在 squeak 中编写 GUI

    smalltalk - 如何检查两个数组是否包含相同的元素?

    javascript - 如何在MouseMove事件上冒泡

    javascript - 是否可以 EventHandle 页面通过 Javascript 发出的每个 GET 请求?

    Python Tk Canvas 项事件绑定(bind): iterating bindings over multiple items

    smalltalk - 是否可以将消息分配给变量?

    Smalltalk:在 GNU Smalltalk 中分配给变量而不声明变量

    smalltalk - smalltalk 中的 if 可以省略 ifTrue 吗?

    smalltalk - 如何对齐 Squeak FFI 中的结构字段