ОС Політ: Інтерфейс
Оболонка системи
  Новини
  Про проект
  Скріншоти
  Даунлоад
  Інтерфейс
     Оболонка системи
     Файли та нав. панель
     Спецефекти

  Адреси
  Форум
  Написати

Мій Політ - сайт підтримки ОС Політ

ОС Політ: Книга програмера
Великий трей

  Dark sisters, join my night flight
See how far you can climb
Holt's with us on this bright night
Ride with him 'cross the sky
"Belladonna and Aconite", Inkubus Sukkubus

Windows'ний трей - це область екрана з іконками деяких працюючих програм. Вони завжди видимі, завжди під рукою, і при цьому займають мінімум місця на екрані. В цілому ідея це хороша, але має і певні проблеми. Одна з них - іконки трея не можуть показувати багато інформації. Фактично одною іконкою можна демонструвати лише стан чогось (чи працюють колонки, чи є з'єднання з Інтернет, яка розкладка клавіатури вибрана тощо). А друга проблема - різні програми працюють з треєм по-різному: одні розуміють клік правою кнопкою на своїй іконці, інші - лівою, треті - подвійний клік.

Щоб позбутись цих проблем, я пропоную зробити ось що. Виділимо під трей більше місця - наприклад, полоску вздовж нижнього краю екрана (таку саму, як і панель задач). Приблизно так, як на панельках різних Linux-десктопів. Не треба жаліти під це місця - повірте, воно того варте; на такий трей влізе багато речей, які у Windows працюють в окремих вікнах.
Виглядатиме це приблизно так:


Отож, кожній програмі даємо полоску певної ширини (назвемо її секцією трея). Вона складатиметься з трьох речей:

  • Кнопки з іконкою програми. Вона відкриватиме меню програми (звісно, простим кліком лівою кнопкою).
  • Місце, яке програма використовує на власний розсуд. Тут можуть бути кнопки, написи, картинки і так далі (залежно від того, що це за програма).
  • Роздільна лінія, за допомогою якої юзер може міняти ширину секції або зовсім згортати її до кнопки з іконкою (тоді секція займатиме не набагато більше місця, ніж іконка у Windows-ному треї).

Які ж речі можна розмістити у такому "збільшеному" треї? Давайте подумаємо...
  • годинник із будильниками та нагадувалками (приблизно такий, як на картинці);
  • цілий музичний плеєр із назвою пісні та кнопками (Play, Next та іншими);
  • статистика модемного чи Інтернет-з'єднання (швидкість, кількість переданих і прийнятих байт);
  • хід файлових операцій типу копіювання;
  • колись дуже нескоро там може опинитись словник типу Lingvo або статистика поштового клієнта (сигнал про отриману пошту, кількість непрочитаних листів);
  • звичний перемикач розкладки клавіатури;
  • панель швидкого запуска, на якій можуть бути або іконки програм, або підменю, або і те і те (приблизно як на панельках KDE або GNOME);
  • плюс ще дві речі, про які я зараз розповідатиму окремо - командний рядок та панель повідомлень.

Командний рядок у треї

У теорії командні рядки вважаються засобом швидкого виконання команд; і ті, хто їх любить і використовує, можуть працювати швидше, ніж це можливо із мишкою та екранними кнопочками. Отож, за принципами свободи вибору, демократії та безплатного пива для всіх :) робимо як опцію у Польоті командний рядок. Розміщуємо його так, щоб він завжди був під рукою - тобто у треї. А щоб полегшити життя тим, хто захоче ним користуватись, робимо наступні чотири фічі.
  • Команди дозволяємо довільно скорочувати. Скажімо, юзер друкує "tex" і натискає точку ".", замість "tex" з'являється "TextEdit". Тобто робимо приблизно так, як працює Tab у Unix'ових шеллах.
  • Із командного рядкає має бути можна не лише запускати програми, а і відразу виконувати потрібні команди у цих програмах (наприклад: "отримати пошту").
  • Коли юзер працює мишкою, а командний рядок на екрані присутній, у ньому по ходу роботи з'являються еквіваленти команд, які юзер виконує мишкою. Так буде легше засвоїти мову командного рядка.
  • Ну і, звісна річ, робимо історію команд - доступну як стрілочками вгору/вниз, так і з меню.

Панель редагування

Панель навігації створена для того, щоб полегшити юзеру пошук, відкриття і збереження документів. Щоб полегшити йому власне роботу над документами, біля протилежного краю екрана зробимо ще одну панельку. Назвемо її, наприклад, панеллю редагування. Вона буде розділена на дві частини: в одній буде показано зміст чернеток (чернетка - це те саме, що і буфер обміну або clipboard), а в іншій буде записник. Зараз я розповім і про те, і про інше докладніше.

Отож, чернетки. Їх буде багато, більше одної (як опція), вони зберігатимуться після виходу з Польоту (теж як опція). Що у них зберігається - буде показано тут, на панельці редагування (зразок тексту, маленька картинка тощо). Схожа річ зроблена у новому Microsoft Office. Працюватиме це так. Команди "Вирізати" та "Зкопіювати" додаватимуть фрагмент у першу чернетку, зсуваючи все інше вниз. Команда "Вставити", відповідно, вставлятиме вміст першої чернетки. Але у меню буде ще одна команда "Вставити" із підменю всіх чернеток. Ще вставляти вміст чернеток можна буде шляхом drag&drop'у з панельки редагування. Ще на ній будуть засоби настройки чернеток та керування ними (зокрема видалення більше не потрібних).

А от Записника в новому Microsoft Office не було :). Це буде маленьке текстове поле, де юзер зможе записувати довільні замітки для поточної папки (проекту) або, за бажанням, для окремих файлів.


Панель повідомлень

Зробимо у треї спеціальну секцію - панель повідомлень. У випадках, коли Windows вивалює діалогове вікно, щоб щось сказати юзеру або запитати його про щось, Політ показуватиме це повідомлення у панелі повідомлень. Перевага проста - це не так відволікає юзера від роботи, якою він займається зараз. Якщо він хоче, він може просто ігнорувати повідомлення та продовжувати роботу. Тоді система через якийсь час (наприклад, 15-30 секунд) сховає повідомлення і, якщо треба, почне виконувати дію за умовчанням.

Ось, наприклад, як це виглядає у Windows...


...і як це виглядатиме у Польоті:

З реалізацією панелі повідомлень є ще багато питань. Це буде просто секція трея? Чи виділити під неї окремий рядок - повідомлення можуть бути довгими? Можливо, показувати його, коли з`являється повідомлення, а потім ховати? Одної панелі повідомлень досить чи власна така панель має бути у програмах, що виводять повідомлення?

Закон Фіттса

Один із основних законів дизайну інтерфейсів - так званий закон Фіттса:
    Швидкість досягнення цілі прямо пропорційна розміру цілі та обернено пропорційна відстані від неї.
(Цілями тут називаються екранні інтерфейсні елементи типу кнопок). Із цього закону є два цікавих наслідки. Перший - ми можемо створити "ціль", відстань до якої практично дорівнює нулю. Це контекстне меню, що завжди з'являється чітко під кусором мишки. Другий - можливі "цілі" нескінченного розміру. Це кнопки, що розташовані впритул до краю екрана (нескінченна висота чи ширина) чи навіть у куті екрана (і ширина, і висота нескінченні). "Нескінченні" - тут мається на увазі ось що: скільки не рухати курсор мишки, скажімо, вгору від верхнього края екрана, він все одно не підніметься вище. Отож, "цілі" на краях екрана набагато доступніші: достатньо просто "кинути" мишку до певного краю, і курсор зупиниться якраз на краю (не "перелетить" ціль).

У Польоті цей наслідок використовується дуже активно: