Разработка для панели задач Windows 7 – переходим к спискам переходов – часть 1
Приглашаем присоединиться к еще одной теме, посвященной панели задач Windows 7! В предыдущей статье «Разработка для панели задач Windows 7 – AppID» мы рассказали об очень важном элементе внутренней архитектуры панели задач – Application ID (AppID), который является ключевым компонентом, определяющим, как разные приложения группируются под одной кнопкой панели задач. AppID также имеет прямое влияние на то, как заполняется и группируется содержимое списков переходов (jumplists).
Microsoft разрабатывала панель задач Windows 7, чтобы обеспечить пользователям простой и быстрый доступ к тем функциям и документам, которые используются чаще всего. Сюда относятся изображения, музыка, документы или ссылки/ярлыки к приложениям или папкам, или любой иной тип контента Windows. Под «быстрым и простым» имеется в виду возможность получать доступ к часто используемым программам с помощью единственного щелчка мышью или, в худшем случае, с помощью значительно сократившегося количества щелчков. «Быстрый и легкий доступ» также обозначает, что пользователи должны иметь возможность быстро перейти к тем документам/приложениям, с которыми они хотят работать, начав процесс одним щелчком мышью. Чтобы обеспечить такую функциональность, в панели задач Windows 7 была представлена концепция списков переходов. Дополнительную информацию о предпосылках создания выпадающих списков панели задач можно найти в статье Чайтаньи Сарин Панель задач в Windows 7 и видео на Channel 9 Обзор новой панели задач Windows 7.
Так как мне нравится говорить о причинах создания новой панели задач (поскольку я люблю пользовательскую функциональность и простоту использования в общем), то я сфокусируюсь на API панели задач. Как разработчик вы должны думать о списках переходов, как о собственной мини-версии меню Start для приложения. Списки переходов открывают доступ к часто используемым назначениям (являющимся именами существительными) и действиям (обозначаемым глаголами) программы. Это позволяет реализовать простой пользовательский доступ к назначениям, избавляя от необходимости заблаговременно запускать приложение. Следующее изображение показывает, как списки переходов работают в Office Word 2007. Вы можете заметить, что в категории Recent есть список недавних документов, которые я использовал в Office Word. Щелчок по одному из них запустит Office Word с уже выбранным документом.
Раньше мы упоминали Word 2007, как пример приложения, которое отлично взаимодействует с панелью задач Windows 7, даже при том, что оно было выпущено задолго до появления панели задач Windows 7. Все кнопки панели задач группируются под одной иконкой, а список переходов автоматически заполняется недавно использовавшимися документами Word. В следующей статье я подробно расскажу, как заполняются списки переходов. Сейчас давайте сконцентрируемся на понимании сути списков переходов.
Стандартные задания «из коробки» предоставляют возможность запуска новых экземпляров приложения, прикрепление или открепление приложения в панели задач и его закрытие. Вы можете получить доступ к спискам переходов, щелкнув правой кнопкой на иконке приложения в панели задач. Однако, как показывает следующее изображение, вы сможете лучше контролировать панель задач путем настройки контекста выпадающих списков для вашего приложения.
Определения из Windows 7 SDK:
Под «назначениями» следует понимать элементы, появляющиеся в категориях «Недавние», «Часто используемые» или в индивидуальных категориях (на изображении выше это категория Important). Назначениями могут быть файлы, папки, сайты или любые другие элементы, но не обязательно связанные с файлами. Назначения могут быть прикреплены или удалены пользователем из выпадающего списка. Обычно они представлены элементами IShellItem, но также могут быть и объектами IShellLink.
Под «заданиями» следует понимать часто исполняемые в приложении действия, которые доступны всем его пользователям независимо от индивидуальных шаблонов. Задания не могут быть прикреплены или удалены. Задания представлены объектами IShellLink, так как фактически являются ссылками, с необязательными параметрами на команду «Actions».
Как разработчики мы можем:
1. Контролировать назначения у приложений (контроль тех элементов, к которым мы хотим обеспечить доступ через список переходов)
- Назначением может быть одна из любых известных категорий, например, Recent или Frequent.
- Категория Custom точно такая же, как и любая другая категория назначений, но при этом позволяет разработчику самому присваивать ей имя, а также наполнять содержимым.
- Категория Pinned рассчитана на прикрепленные элементы, к которым пользователи хотят иметь постоянный доступ в своих выпадающих списках. Пожалуйста, обратите внимание на следующее: только пользователи могут прикреплять элементы выпадающего списка, и нет никакого поддерживаемого программного способа для разработчика закрепить элемент в списке.
- Вы можете полностью удалить категорию прикрепленных элементов из выпадающего списка, но дважды подумайте о том, хотите ли вы запретить пользователям закреплять элементы в вашем приложении.
2. Определять задания
- Панель задача предусматривает собственные готовые задачи, такие как запуск/закрытие приложений и прикрепление/открепление их от панели задач. Как разработчики мы не можем контролировать задачи самой панели, но можем изменять пользовательские задачи.
- Пользовательские задачи – общедоступные задачи, которые разработчик хочет сделать доступными в списке переходов и которые позволят совершать определенные действия прямо из списка переходов. Например, воспроизвести всю музыку из библиотеки, не запуская сам плеер, или запустить другое приложение, например, Internet Explorer, при щелчке на задаче «перейти на домашнюю страницу» в списке Windows Live Messenger, как это показано на следующей картинке. Еще раз: вся вышеуказанная функциональность списков переходов экономит время и сокращает количество щелчков, необходимых для выполнения задачи.
В следующей статье мы углубимся в API списков переходов на панели задач. Но сначала нам необходимо обратится к программной модели панели задач. Панель задач имеет свой набор API, как и любой другой компонент оболочки Windows, доступных через набор COM-интерфейсов. Однако, есть несколько действий, которые мы, разработчики, можем сделать до того, как начать использовать COM API панели задач.