2012-01-22 5 views
1

Возможно ли, чтобы окно выглядело как настоящий дисплей для головы? Если вы не можете полностью сделать окна какой-либо частью следующего? Любые указатели на поиск информации о том, как закодировать такое окно, были бы замечательными.Пользовательские NSWindows

1 - Быть выше всего?

  • Все остальные окна?
  • Во всех помещениях?
  • Показан над скринсейвером? [1]

2 - Не интерактивный?

  • Никогда не фокусируйтесь?
  • Игнорировать все щелчки мышью? (то есть., Если пользователь нажимает где окно, что когда-либо находится под окном получает щелчок)

[1] показано выше экранной заставки будет устанавливаемый пользователем предпочтения (по умолчанию выключена). Если на дисплее отображается большой телевизор, и слайд-шоу с заставкой запускается, пользователю может показаться, что дисплей будет отображаться.

+0

Да, это возможно. Безы, которые появляются при изменении объема экрана/etc, делают это, и я видел, как это делают сторонние приложения. Но я не совсем уверен, как это делается. Я подозреваю, что вам нужно подклассифицировать NSWindow, выбрать соответствующий уровень окна (я полагаю, что для этого существуют константы, и вы можете сделать что-то вроде 'kConstantName - 10'. Я не уверен, как сделать щелчки мыши« провальными », окно, но я подозреваю, что это где-то только логический флаг. Убедитесь, что код рисования * очень * эффективен, я думаю, что он будет запускаться каждый раз, когда любое другое приложение делает любой чертеж. Может быть, кеш NSImage? –

ответ

0

Я не уверен, что вы хотите. Если вы ищете полноэкранное приложение, введите Implementing the Full-Screen Experience.

В противном случае, вы могли бы хотеть читать Window Layers and Levels

Вот Exert для удобства:

Есть несколько предустановленных уровней окна, указанные константами, определенными в классе NSWindow. Обычно вы используете следующие уровни: NSNormalWindowLevel, который определяет уровень по умолчанию; NSFloatingWindowLevel, который определяет уровень для плавающих палитр; и NSScreenSaverWindowLevel, который определяет уровень окна экранной заставки. Вы также можете использовать NSStatusWindowLevel для окна состояния или NSModalPanelWindowLevel для модальной панели. Если вам нужно реализовать свои собственные всплывающие меню, вы используете NSPopUpMenuWindowLevel. Остальные два уровня, NSTornOffMenuWindowLevel и NSMainMenuWindowLevel, зарезервированы для использования в системе.

Oh! И я уверен, что у вас нет ничего над заставкой.