Марк Шаттлворт об индикаторах

453

Я уже упоминал, что в следующем релизе Ubuntu грядут большие перемены. В частности, будет внедрена система индикаторов. И если об этом говорят уже такие знаменитости как знаменитости как Марк Шаттлворт, убунтийцев таки ждут большие перемены. Но одно дело пространные намеки, и совсем другое — конкретные заявления. Ниже предлагаю Перевод сегодняшнего поста из блога Марка Шаттлворта, выложенный yktoo.

Работа над проектом индикаторов «Аятана» (Ayatana Indicators) дала нам чёткое понимание и основания для реализации индикаторов, раположенных в панели. Мы решили, как именно они будут выглядеть и каким будет их поведение. Мы также решили, что они будут расположены в правой части панели.

Но зачем ограничиваться панелью? Давайте лучше предоставим их в распоряжение приложений — для тех задач, где индикаторы могут быть особенно полезны:

  • Уведомление о каком-либо состоянии, например, установлено ли программой подключение,
  • Предоставление доступа к меню индикатора, позволяющему это состояние изменить.

Мы начали работу над оконными индикаторами, «виндикаторами» (так смешнее). Виндикаторы — это индикаторы, отображаемые в заголовке окна и ведущие себя в точности так же, как индикаторы в панели: у них есть значок, показывающий состояние, а клик на значке отображает меню. Приложения могут создавать, обновлять и удалять оконные индикаторы, используя соответствующий API, примерно так, как это делается во фреймворке AppIndicator, впервые появившемся в 10.04 LTS.

Оконные индикаторы выполнены по правилам стандартных индикаторов Ayatana, но относятся только к конкретному окну.
Оконные индикаторы, они же «виндикаторы» на примере окна приложения.

Мы заботливо разместили все индикаторы панели в правой её части. Мы столь же заботливо подвинули влево элементы управления окном и его заголовок. Теперь у нас в распоряжении есть свободное место справа. Стандартом будет помещать туда оконные индикаторы.

В Canonical технологию отрисовки заголовка и границ окна развивает Коуди Рассел (Cody Russell). Эти элементы формируют так называемое «клиентское оформление окна» («client side window decorations»). Мы переносим отрисовку оформления окна в само приложение, поэтому эти части больше не отрисовываются оконным менеджером и приложением по отдельности. Это, в свою очередь, кое-что упрощает (но кое-что и усложняет, конечно).

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

Меньше хрома, больше пользы: изгнать строку состояния

В нашем подходе к дизайну я руководствуюсь принципом «чем меньше, тем больше», и я, в частности, хочу избавиться от разбазаривания пространства по вертикали. Это особенно актуально для нетбуков. В то же время, многие приложения имеют в нижней части строку состояния (status bar), хотя единственная причина этого в том, что так было заведено ещё в Windows 3.1.

Типичная строка состояния приложения содержит:

  • Значки состояния («Подключено»)
  • Некоторые инструменты («Yslow»)
  • Кратковременное статусное сообщение («Сохранение файла»)

Мы можем заменить вышеперечисленное комбинацией виндикаторов и всплывающих статусных строк-сообщений. Мне очень нравится то, как браузер Chrome отображает статусные сообщения, так что хвала им и благодарность за отличную идею. Выигрыш от использования этих двух механизмов составит примерно 5% места по вертикали для чего-то действительно полезного.

Очерёдность реализации

Если вам нравится наша идея, пожалуйста, подпишитесь на список рассылки Ayatana и участвуйте в обсуждении нюансов реализации. Мы хотим разработать базовые принципы, которые позволят использовать одинаковые значки и, по возможности, одинаковые пункты меню индикаторов для одинаковых задач в различных приложениях. Само собой, приложения смогут использовать эти механизмы и для своих специфических надобностей.

Намеченное к 10.10

Будет просто волшебно увидеть реализацию некоторых оконных индикаторов в Ubuntu 10.10. Пожалуйста, помогите нам выбрать наиболее полезное! На данный момент в нашем списке следующее:

  • Индикатор состояния «онлайн / оффлайн» и опция подключения для почтовой программы, чата или Gwibber (приложения для рассылки сообщений в различные сервисы).
  • Индикатор «файл не сохранён», сообщающий о том, что текущий файл изменён, и дающий возможность сохранить его и/или изменить опции автосохранения.
  • Индикатор прогресса, который показывает, что выполняется некая операция, и, возможно, позволяющий узнать её прогресс. Меню индикатора может позволять приостановить или отменить операцию, а также задать, что произойдёт после её завершения.
  • Индикатор «корзина», показывающий, отобрано ли что-то для покупки.
  • Индикаторы совместного доступа, показывающие, доступен ли документ другим людям, а также позволяющие этот доступ настроить.
  • Индикаторы громкости, отображающие уромень громкости аудиопотоков приложения и позволяющие её для данного приложения изменить.

Главной особенностью всех этих индикаторов является то, что они относятся исключительно к приложению, и в идеале имеют смысл только для того окна, на котором они расположены.

Точь-в-точь как индикаторы панели…

С точки зрения визуального дизайна, целью использования индикаторов является всё та же символичность. Они должны быть реализованы в том же стиле, что и индикаторы Аятаны:

  • По умолчанию монохромные, форма указывает на функцию индикатора.
  • Семантическая раскраска: красный цвет означает критические проблемы, оранжевый — предупреждения, зелёный — положительные изменения статуса, синий — информативные состояния, отличающиеся от состояний по умолчанию или обычных состояний.

Интеграция с Netbook Edition Smart Panel

На прошлой неделе я писал о нашем решении ввести единое глобальное меню для всех приложений, расположенное в панели (речь идёт только об Ubuntu Netbook Remix — прим. перев.). Я также говорил, что мы изучим возможность помещения заголовка окна и его меню в панель, если окно развёрнуто на весь экран. Разумеется, это означает, что и оконные индикаторы должны будут располагаться там же. Они появятся в правой части панели, и будут при этом раположены левее индикаторов самой панели. Например, вот развёрнутое окно приложения (обратите внимание на кнопку-логотип Ubuntu в левом верхнем углу: это панель, а не заголовок окна):

Макет развёрнутого окна с умной панелью и оконными индикаторами.

В такой конфигурации достигается «служение единой цели»: весь экран предоставлен одному приложению, и в тоже время элементы Аятаны продолжают выполнять свои функции, как системные (индикатор аккумулятора), так и специфичные для приложения.