Mac OSX Наложение - PullRequest
       5

Mac OSX Наложение

0 голосов
/ 01 декабря 2009

Как бы я занялся программированием оверлея типа HUD в OSX. Я хочу иметь приложение, которое будет отображать текст в определенной точке поверх окна другого приложения.

И, таким образом, если окно (других приложений) перемещается, часть HUD останется с той же координатой другого окна.

Ответы [ 2 ]

1 голос
/ 01 декабря 2009

Для самого окна используйте прозрачное окно без полей (множество примеров) с собственным настраиваемым видом для рисования наложенных элементов.

В части «окна других приложений» нет общедоступного API, который бы позволил вам сделать это плавно. Вы используете Universal Access и его API определения местоположения / навигации, но он требует, чтобы ваши пользователи включили «Включить доступ для вспомогательных устройств» (я думаю, что это все еще нельзя сделать программно). Я не верю, что это «дает вам знать», когда окно движется, но я могу ошибаться. Если это произойдет, то, скорее всего, это будет однократная попытка «вот где я сейчас», так что ваш оверлей, скорее всего, не поспевает. Я также не думаю, что он дает вам «уровень окна», чтобы вы были уверены, что вы «выше» любого данного окна / листа / палитры.

Единственный вариант (для перемещения с окнами других приложений) является общесистемным, инвазивным взломать л Application Enhancer (что весьма спорно). Легко ошибиться и дестабилизировать систему пользователя (отсюда и противоречия).

0 голосов
/ 07 мая 2010

Вы можете использовать недокументированные функции CoreGraphics для отслеживания окна, см. http://code.google.com/p/undocumented-goodness/source/browse/trunk/CoreGraphics/CGSPrivate.h

...