12345
Reviews / articles about OS/2 |
Operating systems: ArcaOS, eComStation, IBM OS/2 Warp |
![]()
|
|
DATE: 2004-01-30 11:25:33 AUTHOR: Eugene Evstigneev
Наверняка, многие из тех, кто написал хотя бы одну shareware- или freeware-программу задумывался о том, чтобы его творение, которое могло бы быть весьма полезно человечеству, выглядело подобающе. Хотя есть разработчики, считающие, что не важно, как выглядит программа, "лишь бы работала". Утверждение вполне справедливо для программ, работающих в консольном режиме, все взаимодействие с которыми происходит через интерфейс командной строки. Однако, это правило довольно часто применяется во многих приложениях, работающих в графическом режиме. Мотивации здесь две: это сделано из принципа ("вам шашечки или ехать?"), или разработчик просто считает себя некомпетентным в области дизайна интерфейсов, и старается этим вообще не заниматься. Данная статья написана специально для тех, кто занимается разработкой программ для OS/2 (eComStation), поэтому стоит остановится на деталях работы программ в данной среде. К сожалению, для OS/2 нет общедоступного guidelines (спецификаций и рекомендаций) по проектированию интерфейсов (по крайней мере автор об его существовании не знает), поэтому довольно часто встречаются программы, в том числе и коммерческие, которые выглядят в OS/2 инородными, как по внешнему виду, так и по логике интерфейса. Здесь я попытался вывести общие рекомендации по оформлению программ, исходя как из общепринятых стандартов системы, так и из здравого смысла, которые помогут без излишних затрат придать программе более или менее приличный вид. Итак.
Блокнот настроек
Однако, есть случаи, когда использование кнопок "OK" и "Cancel" в диалогах настроек оправдано, например, если программа используется в realtime-системе, и неосторожное изменение некоторых настроек может повлиять на производственный процесс, или же активизация параметров настроек занимает значительное время. Но все же, при разработке OS/2-программы, в диалогах настроек в первую очередь нужно использовать комбинацию "Undo"+"Default", и только если этот вариант по каким-то причинам не может быть применен, использовать "OK" и "Cancel". Но даже во втором случае будет крайне полезным наличие кнопки "Default".
Еще один элемент в диалогах, который часто перевирается
разработчиками - это блокнот с закладками. Здесь ситуация
намного лучше, чем с описанными выше кнопками. Как правило,
используется или стандартный элемент управления, или же
закладки не используются вовсе. Однако, иногда встречаются
программы, в которых реализован некоторый суррогат стандартных
закладок. Другой, более тяжелый случай, когда в обычном диалоговом окне в верхней его части в ряд по горизонтали располагаются обычные push buttons, при нажатии на которые меняется содержимое диалога. Таким образом симулируется работа блокнота. Такие случаи крайне редки, но они есть. Здесь я просто хотел бы предостеречь от подобных действий, которые иначе как издевательством над пользователем назвать нельзя.
Системные цветаЗдесь картина просто ужасающая. Большинству данная проблема вообще не знакома. Но попробуйте поменять в палитре схем фон меню, приложений и диалогов, и позапускайте разные программы. Большинство разработчиков наверно даже не в курсе, что эти системные параметры могут меняться, и делают расцветку программы простым серым цветом, исходя из того, что стандартно используется именно серая палитра. Для справедливости нужно сказать, что это явление сейчас уже не такое массовое, каким было еще лет 5 назад, но все же до сих пор встречается чересчур часто. Если в программе используются только стандартные элементы управления, то здесь проблем, как правило, нет. Экран начинает пестреть, когда в программу добавляются элементы, стандартно в OS/2 отсутствующие: статус-строка, панель инструментов, progress bar и др. Не буду описывать, во что выливается подобная самодеятельность, опишу только некоторые рекомендации. Главный критерий здесь - элемент не должен выбиваться из общей цветовой гаммы, а цветовая гамма - вещь переменная. К счастью, в OS/2 довольно простой механизм использования системных цветов. С точки зрения разработчика каждый цвет из текущей палитры цветов представлен константой, и приведение всего приложения к системной цветовой гамме не составляет большого труда. Как правило, вся работа сводится к простой замене в исходном коде всех упоминаний цветовых констант с префиксом CLR_* на соответствующую константу из набора System Colors с префиксом SYSCLR_*. Однако, четкого соответствия между чистым цветом и системным цветом нет. Замену следует производить исходя из семантики того или иного объекта, цвет которого предполагается поменять. К примеру, если у вас в программе реализована панель инструментов, то естественно предположить, что ее фон должен соответствовать фону окна рабочей программы, которому соответствует константа SYSCLR_APPWORKSPACE. Однако, фон элемента Progress Bar, как правило, должен соответствовать фону диалогового окна (константа SYSCLR_DIALOGBACKGROUND). В первую очередь нужно исходить из того, где будет использоваться такой элемент - в рабочем окне программы или в диалоговом окне. Как правило, их цвета совпадают в большинстве случаев, но в все же они семантически разделены. Гораздо сложнее, если элемент с одинаковой интенсивностью используется как в основном окне, так и в диалогах. Единственно правильное решение здесь - перед прорисовкой такого элемента управления определять цвет фона родительского окна, и использовать именно его. Кратко опишу, в каких случаях какой системный цвет должен использоваться:
Здесь описаны только элементы оформления, используемые наиболее часто. Естественно, всех возможных нюансов охватить нельзя, и при выборе расцветки для какого-нибудь элемента нужно исходить из здравого смысла, и качества получаемой в конечном итоге картинки. На этом можно было бы и закончить, если бы OS/2 не предлагала более развитые средства по оформлению программ. Речь о Presentation Parameters (PP). Большинство разработчиков при оформлении программ могли бы ограничиться системными цветами, но для полного соответствия визуальным стандартам OS/2 все же необходимо ввести поддержку PP, хотя это и требует дополнительных затрат на кодирование. С точки зрения пользователя, PP позволяют произвольно менять расцветку любого элемента программы путем простого перетаскивания нужного цвета или шрифта из соответствующей палитры на элемент управления. Для программиста PP выглядит как массив, привязанный к каждому элементу управления, каждый элемент которого содержит цвет (или шрифт), используемый для прорисовки определенной области этого элемента. Для полноценной поддержки PP в программе необходимо реализовать механизм drag&drop для цветов и шрифтов из системных палитр. А для того, чтобы этот механизм был действительно полезным, а не игрушкой по типу "раскрась сам", нужно обеспечить сохранение PP для всех элементов при выходе из программы, с последующим их восстановлением при следующем запуске.
РастрыОтдельно стоит упомянуть использование в программах растровых изображений, применяемых для оформления элементов управления. По естественным причинам не может быть и речи об использовании в растрах System Colors. Делается это по разным причинам - из желания выделиться из стандартного окружения, из необходимости реализовать элементы управления, стандартно в OS/2 отсутствующие, или же в программе должен присутствовать некоторый образ (например, логотип), не связанный с управлением программой. Как правило, никакой разумной мотивации в собственной прорисовке стандартных элементов нет. Кроме того, что результат подобной самодеятельности не отличается эстетичностью (мало кто из разработчиков обладает художественными и дизайнерскими навыками), они еще по своей сути являются монолитами - любая модификация пользователем текущей схемы, или же смена визуальных стандартов операционной системы при выходе очередной версии, такой программы не коснется. По этой же причине ее нельзя будет назвать соответствующей визуальным стандартам OS/2. Единственное исключение здесь - механизм скиннинга, когда необходимость в собственной прорисовке диктуется самой сутью выбранной визуальной архитектуры. Скиннинг сейчас используется все чаще и чаще, однако это не всегда оправдано. В программах с достаточно развитым интерфейсом скиннинг только затрудняет взаимодействие с ней - адаптировавшись к стандартному интерфейсу операционной системы, пользователю будет трудно приспособиться к необычному внешнему виду программы, а иногда и к нестандартной логике интерфейса. Однако, есть класс программ, которые сегодня трудно представить без скиннинга - это всевозможные медиа-проигрыватели, tv- и fm-тюнеры, и т.п.
Ссылки:
Комментарии:
|
|
||||||||||||||||||||||||||||||||||||||||||||
ArcaOS 5.1.1 - DOS Опять работает
DOS виртуальная машина опять работает (работала на древних компьютерах Core 2 Duo). Для этого надо устанавливать ArcaOS в режиме UEFI. |
![]()
Panorama VESA видео драйвер для OS/2В 2007-ом году eCo Software выпустила драйвер Panorama VESA - OS/2 избежала гибели. |
// надо на ENG!!
![]()
Купить OS/2:
ArcaOS 5.1, лицензия
|
Warpstock Europe 2017Конференция Warpstock Europe 2017 проходила в Роттердаме (Нидерланды). Это была встреча пользователей и разработчиков OS/2. Репортаж:
|