Минимизация на месте - нужна ли мне специальная структура

Я хочу создать общесистемную функцию минимизации на месте, которая появляется при двойном щелчке по строке заголовка любого видимого окна в слое 0.

Кажется, что это было бы действительно простой функцией для повторной реализации... Когда дважды щелкните строку заголовка, просто нарисуйте только строку заголовка. Вот и все. Проблема заключается в том, чтобы внедрить его во все приложения. Я думаю, что это требует написания пользовательской структуры для переопределения поведения в AppKit? Может быть, NSApplication, NSWindow или NSView?

Как я могу воссоздать минимизацию на месте? Является ли фреймворк моим единственным выбором? Если я создаю фреймворк, могу ли я заменить поведение свертывания в сторонних приложениях?

Какие рамки мне нужно переопределить, чтобы перехватить и воссоздать поведение по умолчанию кнопки свертывания?

Подробнее о минимизации на месте: я знаком с WindowShade от Unsanity, это именно то, что я хочу создать. Предположительно, Unanity работает над Lion-версией, но их послужной список невелик. Минимизация на месте была системной функцией еще во времена ОС 7 или 8. Я пробовал другие утилиты, которые пытаются заменить эту функцию, и нет ни одной, которая бы минимизировала на месте на уровне базовой системы. как это должно быть сделано. Пожалуйста, не предлагайте предложений, я собираюсь построить свой собственный.

Я создал приложение, воссоздающее минимизацию на месте, но оно недостаточно хорошее. Мое приложение полу-успешно воссоздает минимизацию на месте, помещая окна-заполнители (принадлежащие моему приложению) вместо окон сторонних производителей, когда они свернуты в док-станцию. Когда мое окно (только строка заголовка) дважды щелкает, я закрываю окно и восстанавливаю реальное окно из дока.

Мое пользовательское приложение работает отлично, но происходит много переключения приложений. Я оптимизировал переключение между приложениями, чтобы оно было практически незаметным, но факт остается фактом: переключение приложений происходит каждый раз, когда дважды щелкается строка заголовка окна. Результатом переключения приложений является то, что строки меню переключаются назад и вперед, поддоны сторонних приложений скрываются, когда мое приложение фокусируется, и список продолжается.

Итак, хотя я создал концептуальное приложение, этот метод не будет работать так, как мне бы хотелось. Минимизация на месте должна быть реализована с использованием другого метода, чем создание приложения, и мне нужна помощь, чтобы понять, как это сделать.

демо-приложение минимизации на месте

То, что я знаю, думаю, что мне нужно сделать. Предложения и помощь приветствуются. Я думаю, что мне нужно написать пользовательский фреймворк, который заменяет AppKit? Это кажется ошеломляющим, даже если мне нужно переопределить только крошечную часть кода? то есть основная функция _minimize, что бы это ни было.

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

Просто верно?

Спасибо за любую помощь / предложения,

Крис

0 ответов

Другие вопросы по тегам