Распространение события в GUI Morphic

У меня есть изображение для Писка GUI Morphic, который содержит некоторые прозрачные части и таким образом не должен принять mouseevents и т.д., но просто быть видим, но это должно быть видимо перед другими морфами.

Вот почему я думал, что будет полезно распространить появление mouseevents к базовым морфам. Делает любой знает, что решение для моей проблемы или другого предложения решает его.

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

_____________________________ <- basic morph

я надеюсь, что это иллюстрирует мою проблему.

9
задан hanneswurstes 19 January 2010 в 04:06
поделиться

1 ответ

Лучшее, что я могу придумать, - это что-то вроде следующих строк (в порядке увеличения плавности и порядка уменьшения вероятности срабатывания)

  1. Запишите событие, уберите прозрачное изображение на вкладку и воспроизведите событие. Это кажется неэффективным и плохим способом сделать это.
  2. Каким-то образом отслеживать, что находится в фокусе за вашим прозрачным изображением, и передавать ему событие. Я не знаком с рассматриваемыми библиотеками, поэтому не знаю, возможно ли это сделать так. Если у вас есть контроль над другими слоями, это, скорее всего, путь. (Вы можете напрямую вызвать их функции «произошло событие мыши» с помощью этого события mouseDownEvent, хотя вам все равно нужно определить, какой из них получит его).
  3. Просто объявите его как что-то, что не получает событий мыши, передаваемых ему на любом доступном уровне. Окна OSD имеют тенденцию делать это, я не уверен, как. Если вы можете сделать это таким образом, я бы посоветовал это ... но, учитывая, что вы задаете этот вопрос, вы, вероятно, не сможете.
2
ответ дан 3 November 2019 в 07:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: