Zune (GUI)

Пример настроенного интерфейса Zune

Zune — объектно-ориентированный графический интерфейс пользователя в операционной системе AROS. В процессе развития операционной системы перед разработчиками возникла проблема обеспечения возможности компиляции Open Source приложений, использующих графический интерфейс MUI, так как сам MUI являлся shareware-продуктом. Длительные переговоры об открытии исходных кодов с автором MUI (Стефаном Штунтцем) не привели к положительному результату, поэтому было принято решение создавать интерфейс, полностью совместимый с MUI, «с нуля». Проект начинался как GPLed MUI-клон для X11 (с целью ускорения процесса написания базовые функции подменялись на вызовы X-Window) и постепенно переводился в полностью нативный код. Цель была достигнута в полном объёме к 2002 году и с этого момента Zune развивается уже самостоятельно. Автором Zune является итальянец Флавио Станчина (Flavio Stanchina  (англ.)).

Zune стал практически полным аналогом MUI (как на уровне API, так и на уровне Look&Feel), самого популярного на Amiga shareware-интерфейса Стефана Штунтца. Это обеспечило возможность рекомпиляций для AROS интерфейсных частей MUI-приложений AmigaOS и MorphOS, без изменений исходного кода. Кроме того, разработчики, знающие MUI, чувствуют себя в нём «как дома», а новые пользователи и разработчики для AROS получили возможность изучения концепций и особенностей, общих для обоих интерфейсов. Философия Zune (как и MUI) основана на двух постулатах:

  • Программист может затратить намного меньше времени при проектировании интерфейса: в Zune нет привязки элементов интерфейса к абсолютным значениям, среда чувствительна к кеглям шрифтов и сама адаптирует размеры и расположение любых окон в зависимости от шрифтов пользователя. Zune предоставляет семантический доступ к элементам проектируемого интерфейса, а его свойства (такие как отступ элемента от края окна в пикселях) регулируются автоматически.
  • Пользователь может намного лучше контролировать Look&Feel интерфейса, спроектированного программистом, и получает возможность специфической настройки параметров окружения Zune.

Zune основан на системе BOOPSI, унаследованной от AmigaOS и используемой для объектно-ориентированного программирования на Си. Классы Zune не являются дочерними по отношению к существующим для элементов интерфейса классам BOOPSI (то есть не являются простым расширением их возможностей). Базовым классом (в иерархии Zune) является Notify — дочерний относительно корневого класса BOOPSI (rootclass).