Я хочу создать общесистемную функцию минимизации на месте, которая появляется при двойном щелчке по строке заголовка любого видимого окна в слое 0.
Похоже, что это будет действительно простая функция для повторной реализации ... Если дважды щелкнуть строку заголовка, просто нарисуйте только строку заголовка. Вот и все. Проблема заключается в том, что это делается во всех приложениях. Я думаю, что это требует написания пользовательской структуры для переопределения поведения в AppKit? Может быть, NSApplication, NSWindow или NSView?
Как я могу воссоздать минимизацию на месте?
Является ли фреймворк моим единственным выбором? Если я создаю фреймворк, могу ли я заменить поведение свертывания в сторонних приложениях?
Какую инфраструктуру мне нужно переопределить, чтобы перехватить и воссоздать поведение по умолчанию для кнопки минимизации?
Подробнее о минимизации на месте:
Я знаком с WindowShade от Unsanity, это именно то, что я хочу создать. Предположительно, Unanity работает над Lion-версией, но их послужной список невелик. Минимизация на месте была системной функцией еще во времена ОС 7 или 8. Я пробовал другие утилиты, которые пытаются заменить эту функцию, и нет ни одной, которая бы минимизировала на месте на уровне базовой системы. как это должно быть сделано. Пожалуйста, не предлагайте предложений по полноте, я собираюсь построить свой собственный.
Я создал приложение, воссоздающее минимизацию на месте, но этого недостаточно.
Мое приложение полу-успешно воссоздает минимизацию на месте, помещая окна-заполнители (принадлежащие моему приложению) вместо окон сторонних производителей, когда они свернуты в док. Когда дважды щелкают мое окно (только заголовок), я закрываю окно и восстанавливаю реальное окно из дока.
Мое пользовательское приложение работает отлично, но происходит много переключений приложений. Я оптимизировал переключение между приложениями, чтобы оно было практически незаметным, но факт остается фактом: переключение приложений происходит каждый раз, когда дважды щелкается строка заголовка окна. Результатом переключения приложений является то, что строки меню переключаются назад и вперед, поддоны сторонних приложений скрываются, когда мое приложение фокусируется, и список продолжается.
Итак, хотя я создал концептуальное приложение, этот метод не будет работать так, как мне бы хотелось. Минимизация на месте должна быть реализована с использованием другого метода, чем создание приложения, и мне нужна помощь, чтобы понять, как это сделать.
То, что я знаю, думаю, что мне нужно сделать. Предложения и помощь приветствуются.
Я думаю, что мне нужно написать пользовательский каркас, который заменяет AppKit? Это кажется ошеломляющим, хотя мне нужна только крошечная часть кода, которую нужно переопределить? т.е. основная функция _minimize, что бы это ни было.
Если дважды щелкнуть строку заголовка окна стороннего производителя, просто закрепите строку заголовка и позвольте остальной системе функционировать как обычно. В режиме «Свернуть» (дважды щелкните второй раз) верните клип в полное окно.
Просто верно?
Спасибо за любую помощь / предложения,
Chris