Настольный аксессуар (DA) или desklet в вычислительной технике — это небольшое временное или вспомогательное приложение , которое может работать одновременно в среде рабочего стола с любым другим приложением в системе. Ранние примеры, такие как Sidekick и настольные аксессуары Macintosh, использовали специальные модели программирования для обеспечения небольшой степени многозадачности в системах, которые изначально не имели никакой другой возможности многозадачности.
Ранние менеджеры персональных данных, такие как Norton Desktop и Sidekick от Borland , предоставляли всплывающий калькулятор, будильник, календарь и другие функции для однозадачных операционных систем, таких как MS-DOS, используя методы завершения и сохранения резидентной памяти .
Представленный в 1984 году как часть операционной системы для компьютера Apple Macintosh , Desk Accessory (DA) был частью программного обеспечения, написанного как драйвер устройства, соответствующий определенной модели программирования. Целью этой модели было разрешить запуск очень маленьких вспомогательных приложений одновременно с любым другим приложением в системе. Это обеспечивало небольшую степень многозадачности в системе, которая изначально не имела никакой другой возможности многозадачности.
DA были реализованы как специальный класс драйвера . Он устанавливался в очередь драйверов и ему давалось время периодически и кооперативно в результате вызова SystemTask() хост-приложением в своем основном цикле . DA разрешалось иметь пользовательский интерфейс, пока он был ограничен одним главным окном. Специальная рамка окна с черной строкой заголовка и закругленными углами была зарезервирована для использования DA, чтобы пользователь мог отличить ее от окон хост-приложения.
Типичные ранние DA включали Калькулятор и Будильник. Панель управления , Chooser и Scrapbook изначально были реализованы как DA. Можно было приобрести сторонние DA, такие как средства проверки орфографии. Считалось, что написать DA сложно, особенно на раннем этапе, когда инструментов для разработчиков было мало. [1] Однако, поскольку на ранних драйверах Mac OS не было никаких особых привилегий, написание DA было, с практикой, не сложнее, чем любого другого приложения.
Для изменения конфигурации DA использовалась специальная утилита Font/DA Mover . Поскольку DA не устанавливались и не запускались так же, как приложения, пользователь не мог перетаскивать DA в систему или из нее. Они находились в ресурсах DRVR системного файла , как и настоящие драйверы, хотя их можно было установить в любой файл, ресурсы которого загружались в память, и они хранились в «чемоданах», когда не устанавливались в системный файл. Если они были установлены в отдельном приложении, например MacWrite, их функциональность была бы доступна только при запуске этого приложения. То есть настольный аксессуар, установленный как ресурс в приложении, появлялся в меню Apple как настольный аксессуар только при активном приложении. Затем его можно было активировать во время работы приложения, а затем он исчезал при завершении работы приложения с помощью функции Quit. (Аналогичным образом ресурсы FKEY можно было установить либо в системе, чтобы они были доступны всем, либо в приложении, чтобы они были доступны только при активном приложении). Поскольку схема нумерации ресурсов была реализована для маркировки ресурсов как принадлежащих другому ресурсу определенного типа и номера в том же файле, например DA («DRVR»), настольные принадлежности могли иметь собственную ограниченную «ветвь ресурсов» в файле, в котором они содержались; утилита перемещения распознавала такие ресурсы и перемещала их вместе с фактическим ресурсом кода DA, с которым они были связаны.
С появлением System 7 , которая включала стандартную функцию кооперативной многозадачности , потребность в DA значительно уменьшилась, и разработчикам было предложено разрабатывать вместо этого небольшие приложения. Система продолжала запускать DA (и до сих пор делает это до Mac OS 9 .x) для обратной совместимости. В System 7 и более поздних версиях DA можно было перемещать и переименовывать с помощью Finder, как обычные приложения, устраняя необходимость в Font/DA Mover и ограничивая чемоданы управлением шрифтами . Когда DA запускался в System 7, он всегда выполнялся в адресном пространстве Finder . Значок для программы настольного аксессуара в System 7 и более поздних версиях представляет собой примерно перевернутую версию значка приложения, с пишущей рукой на левой стороне вместо правой.
Похожий механизм, позволяющий запускать небольшие служебные программы вместе с обычными приложениями, также присутствовал в операционных системах Apple IIGS и Apple IIe .
GEM во многих отношениях напоминал Macintosh. Одним из примеров было наличие настольных аксессуаров по той же причине: чтобы позволить использовать несколько программ в системе, которая поддерживала только одно полное приложение за раз (хотя настольные аксессуары GEM использовали переключение задач , а не кооперативную многозадачность , как Macintosh ).
С точки зрения программирования, настольные аксессуары были реализованы, как и другие приложения GEM, как файлы DOS .EXE , с именами, заканчивающимися на .ACC (Accessory), а не на .APP (Application). Каждый файл .ACC мог поддерживать несколько аксессуаров; все три стандартных аксессуара GEM (Calculator, Clock и Print Spooler) были предоставлены CALCLOCK.ACC
. Установка была просто вопросом размещения .ACC в правильном каталоге - \GEMBOOT
в более ранних версиях, а также \GEMAPPS\GEMSYS
в GEM/3 и более поздних.
Поскольку каждый загруженный аксессуар стола уменьшал объем памяти, доступной для программ, одним из методов временного увеличения доступного пространства было переименование одного или нескольких файлов .ACC, чтобы они имели другой суффикс (обычно .ACX), и перезапуск GEM. Например, на Amstrad PC-1512 аксессуар Snapshot поставлялся как SNAPSHOT.ACX
и должен был быть переименован в .ACC перед использованием.
Поддержка настольных принадлежностей продолжилась в ViewMAX , файловом менеджере DR-DOS , который поставлялся с почти неизмененными версиями калькулятора и часов.
По той же причине, по которой настольные аксессуары использовались в Mac OS и GEM, а именно, чтобы разрешить запуск более одной одновременной программы в системе, которая не поддерживает многозадачность, концепция настольных аксессуаров была распространена на Palm OS сторонними разработчиками. DA — это апплеты, запускаемые приложением или хаком, служащим в качестве загрузчика DA. Загрузчик DA может отслеживать нажатия клавиш или другие системные события и выводить на экран предопределенный настольный аксессуар. Многие универсальные приложения-загрузчики Palm OS также способны запускать DA.
Программа настольного аксессуара — это база данных ресурсов Palm типа «DAcc», указанная для включения одного ресурса «код» #1000, который содержит двоичный код, реализующий настольный аксессуар. Глобальные или статические переменные недоступны, но DA может вызывать API пользовательского интерфейса. DA может иметь ресурсы пользовательского интерфейса в своей базе данных. Запуск настольного аксессуара передает выполнение первому байту ресурса «код» #1000.
DA обеспечивают некоторую многозадачность. Однако, в отличие от Mac OS и GEM, после того, как пользователь закончит работу с DA, его необходимо закрыть, чтобы вернуться к базовому приложению. Можно вывести один DA поверх другого DA, хотя это может истощить пространство стека.