19 August 2010

Почему некоторые называют область уведомлений «треем»?

Interfaces
Original author: Raymond Chen
оригинал опубликован в 2003, и относится к интерфейсу Windows XP

Короткий ответ: потому что заблуждаются.

Длинный ответ: официальное название штуковины снизу экрана — «панель задач» (taskbar). Она состоит из нескольких элементов — кнопка «Пуск», кнопки переключения между задачами, часы, и «область уведомлений» (taskbar notification area).

Распространённая ошибка — называть область уведомлений «треем» (или даже «системным лотком»). Она никогда так не называлась. Если вы встретите в документации упоминание «system tray», можете доложить, что обнаружили ошибку.

Откуда взялось это неверное название?

В ранних версиях Chicago — ещё до того, как проект получил название Windows 95 — панель задач была не панелью задач, а папкой, зафиксированной снизу экрана. Она была всегда на виду, и можно было «бросать» в неё документы и ярлыки для быстрого доступа — аналогично лотку для всякой всячины, который ставят в верхний ящик письменного стола.



Оттуда и взялось название «лоток (tray) рабочего стола». Немного сомнительное продолжение метафоры «рабочего стола на экране» — но всё ещё в пределах здравого смысла. (Вот если бы вместо обоев на стол клали скатерть...)



Значки свёрнутых приложений ложились прямо на рабочий стол — так же, как в классическом интерфейсе Windows 3.x



Лоток можно было зафиксировать у любого края экрана, а можно было «открепить» и перемещать по экрану, как обычную папку.



Потом мы отказались от этой идеи. На всегда видимую панель решили поместить кнопки переключения между задачами. (В одной из версий Chicago пользователь может выбирать, использовать панель как лоток или как панель задач; а иконки свёрнутых приложений попадают и на рабочий стол, и на панель задач.)



Идея кнопок для переключения задач тоже пришла не сразу. Вначале задумывался ряд вкладок, «листающих» запущенные приложения. Версия Chicago со «вкладками задач» не стала достоянием общественности, и даже нарисованный Рэймондом по памяти скриншот ушёл в небытие вместе с gotdotnet.com. Единственное, что осталось — чёрно-белый рисунок в книге Рэймонда.



Не все программы были готовы к тому, чтобы верх экрана занимал ряд вкладок, и от идеи пришлось отказаться. С другой стороны, код переключения «вкладок задач» был к тому времени уже готов, и проще было перерисовать вкладки, чтоб они выглядели, как кнопки — чем переписывать весь код, используя настоящие кнопки. Так кнопки переключения задач и остались замаскированными вкладками (окно класса SysTabControl32).

Диахроническая справка: функциональность лотка осталась в системе. Пользователь мог подтащить любую папку к краю экрана, чтобы зафиксировать её как новую панель, или как элемент существующей панели. Одна такая панель, «быстрый запуск», добавленная с IE4, частично повторяла назначение исходного лотка — хранение часто нужных ярлыков. Парадоксально, но в Windows 7 видим возвращение панели задач к этой исходной концепции лотка для ярлыков.

Кнопки-вкладки превратились, как и положено ряду кнопок, в панель инструментов (окно класса ToolbarWindow32). Это произошло в Windows XP, когда панель задач впервые после Windows 95 обновили; а начиная с Windows 7, это окно нового уникального класса MSTaskListWClass.

Область уведомлений (ряд значков) была панелью инструментов (ToolbarWindow32) с самого начала, и остаётся ей до сих пор.


Так вот, когда мы решили сделать вместо лотка панель переключения задач, мы прошерстили всю нашу документацию, и заменили упоминания слова «tray» на «taskbar». Нигде в документации Windows Shell слово «tray» больше не упоминается.

Примерно в это же время мы добавили на панель задач область уведомлений.

Наверное, её стали называть «system tray» из-за того, что в Windows 95 была программа systray.exe, отображавшая стандартные значки уведомлений: регулятор громкости, статус PCMCIA, индикатор зарядки батареи. Если завершить процесс systray.exe, значки уведомлений пропадают. Так что пользователи решили, «Ага, systray — это системный процесс, отвечающий за область уведомлений; наверняка она называется 'system tray'.» Заблуждение, которое из-за этого возникло, мы уже восемь лет пытаемся искоренить…

К сожалению, ради обратной совместимости пришлось оставить Tray в названиях оконных классов: Shell_TrayWnd у панели задач, TrayNotifyWnd у области уведомлений, и TrayClockWClass у часов. Но и во всех этих случаях «tray» относится к панели задач целиком — с тех времён, пока она была лотком.

Что хуже всего, разработчики других компонентов Windows и других продуктов Microsoft втянулись во всеобщее заблуждение, и теперь название «tray» встречается в их официальной документации и в примерах кода. Некоторые даже имеют наглость заявлять, что «system tray» — это официальное название области уведомлений.

Неправда. Область уведомлений никогда не была треем: она появилась, когда трей-лоток уже не существовал. Она всегда назвалась областью уведомлений, а значки в ней всегда назывались значками уведомлений (notification icons).

Ну и какое мне дело? Раз теперь все называют её треем, пора бы уже привыкнуть?
Нет. Вот вам бы понравилось, если бы все называли вас чужим именем?
Tags:the old new thingwindowsпанель задачтрейистория интерфейсов
Hubs: Interfaces
+132
9.1k 27
Comments 148
Top of the last 24 hours