Графический интерфейс реакции
ReAction GUI — это движок набора инструментов для виджетов , который используется в AmigaOS 3.2–4.1.
Это развитие ClassAct, объектно-ориентированной системы классов , которая улучшила внешний вид графического интерфейса Workbench 2.0 AmigaOS.
История
[ редактировать ]Собственная оконная система Amiga называется Intuition , которая управляет рендерингом экранов, окон и основных виджетов. Однако до AmigaOS 2.0 не было стандартизированного внешнего вида , и часто разработчикам приложений приходилось писать свои собственные нестандартные виджеты (как кнопки, так и меню), при этом Intuition оказывала небольшую поддержку.
Позже интуиция была расширена с помощью gadtools.library (AmigaOS 2.0 и более поздних версий), который предоставляет набор стандартных виджетов. AmigaOS 2.0 также представила стандартную диалоговую систему под названием ASL (стандартная библиотека запроса Amiga) и Руководство по стилю пользовательского интерфейса Amiga , которое определяло, как приложения должны размещаться для обеспечения единообразия. Интуиция была улучшена с помощью BOOPSI (базовая система объектно-ориентированного программирования для интуиции), которая предоставляет объектно-ориентированный интерфейс для создания расширяемого набора виджетов. Внедрение BOOPSI позволило сторонним разработчикам создавать комплексные наборы инструментов для виджетов, такие как MUI и ClassAct, которые позже превратились в ReAction.
Функции
[ редактировать ]КлассACT
[ редактировать ]ClassAct — это объектно-ориентированная система классов и гаджетов, разработанная на основе системы BOOPSI, представленной в AmigaOS 2.0. Его основными особенностями являются расширяемость и модульность. В систему можно было добавлять новые классы и гаджеты и улучшать ее новыми возможностями. ClassAct был смоделирован по образцу будущего направления, которое Commodore предвидел для будущего ОС, представленного на конференции разработчиков в Орландо до банкротства Commodore. Программисты Кристофер «caldi» Алди, Тимоти Астон, Осма «Тау» Ахвенлампи собрались вместе, и ClassAct — это реализация этого будущего.
Классы ClassACT
[ редактировать ]Основные классы:
- окно.класс
- запросчик.класс
- arexx.class
Основные гаджеты:
- кнопка.гаджет
- флажок.гаджет
- Speedbar.gadget
- пространство.гаджет
- слайдер.гаджет
- скроллер.гаджет
- радиокнопка.гаджет
- палитра.гаджет
- listbrowser.gadget
- макет.гаджет
- целое число.гаджет
- getscreenmode.gadget
- getfont.gadget
- getfile.gadget
- Fuelgauge.gadget
- clicktab.gadget
- выбор.гаджет
- строка.гаджет
- текстовое поле.гаджет
К гаджетам ClassAct можно применять различные стили, например 3D-формат. Гаджеты могут иметь скошенные границы, шрифт имеет запасной вариант на случай, если шрифт по умолчанию слишком велик, чтобы поместиться в окне на экране, номер пера, который будет использоваться для надписей и шрифтов надписей, может быть установлен пользователем, и многие, многие параметры, подобные этим. .
Реакция
[ редактировать ]ReAction — официальный конструктор графического интерфейса AmigaOS начиная с версии OS 3.5. [1] [2] В настоящее время он создается на основе Intuition, обновляется и обеспечивает лучший и более последовательный просмотр приложений, которые его используют.
Система классов и гаджетов ReAction практически такая же, как ClassACT. Он расширяемый и модульный, как и ClassAct. В систему можно легко добавлять новые классы и гаджеты, чтобы расширить ее возможности.
Простым примером такой модульности является новый класс гаджетов ReAction, известный как piechart.gadget . Основная цель этого гаджета — отображение распределения данных по различным источникам, таким как общие ресурсы, емкость диска, свободное пространство и т. д., с помощью графической круговой диаграммы . Также возможно дополнительное взаимодействие со стороны пользователя.
Примеры минимального кода
[ редактировать ]Кнопочные и строковые гаджеты
// Button gadget
#include <gadgets/layout.h>
#include <proto/layout.h>
#include <proto/button.h>
// Sample layout:
LAYOUT_AddChild,OBJ(OBJ_QUIT)=ButtonObject,
GA_ID,OBJ_QUIT,
GA_Text,"Quit",
GA_RelVerify,TRUE,
End,//Quit button gadget
// String gadget
#include <gadgets/layout.h>
#include <gadgets/string.h>
#include <proto/layout.h>
#include <proto/string.h>
#include <intuition/gadgetclass.h>
// Sample layout:
LAYOUT_AddChild,OBJ(OBJ_STRING)=StringObject,
GA_ID,OBJ_STRING,
GA_RelVerify,TRUE,
STRINGA_MaxChars,32,
STRINGA_WorkBuffer,buffername,
End,//String gadget
Другие наборы инструментов на Amiga
[ редактировать ]В мире Amiga конкурируют два основных инструментария виджетов. ReAction, который является набором инструментов графического интерфейса по умолчанию, выбранным для AmigaOS 3.2-4.1 и для разработки программного обеспечения AmigaOS, и MUI , который является набором инструментов графического интерфейса по умолчанию, выбранным для MorphOS . AROS использует набор инструментов Zune , который представляет собой клон MUI с открытым исходным кодом.
Cygnix — это облегченная среда моделирования UNIX для AmigaOS, которая поставляется с X11 сервером Cygwin и используется для переноса таких программ, как AbiWord или GIMP, на Amiga. Немного связанный проект — это оболочка GTK MUI , которая в конечном итоге упростит портирование программного обеспечения на основе GTK .
Различные мультиплатформенные графические библиотеки и наборы инструментов, такие как Cairo и SDL , также доступны на Amiga и являются основой для создания новых и улучшенных наборов инструментов, новых графических интерфейсов, новых систем виджетов и т. д.
Существует также инструментарий на основе XML Feelin .
См. также
[ редактировать ]Ссылки
[ редактировать ]Дальнейшее чтение
[ редактировать ]- Драммонд, Ричард (январь 2000 г.). «Совершенство программы, глава 8: Создание графического интерфейса, часть 2». Формат Амига . № 132. Будущее издательства. стр. 64–65. ISSN 0957-4867 .
- Едличка, Дэн (январь 2000 г.). «Компакт-диск разработчика Amiga v2.1». Обзор Amiga (на чешском языке). № 52. Издательство «Атлантида». п. 16. ISSN 1211-1465 .
- Кристоф, Майкл (ноябрь 2005 г.). «Программирование под OS4 на практике. Часть 3». Amiga Future (на немецком языке). Нет. 57.APC и TCP. стр. 42–46.