| |
Этот раздел дает краткий обзор иерархии классов виджетов в Xt и Motif. Глава 2 более детально рассматривает эту иерархию.
Xt опередляет базовые классы для всех виджетов. Core является фундаментальным классом для всех виджетов, которые имеют окна. Этот класс содержит базовые ресурсы геометрии виджетов, цвета фона, трансляций, и чувствительности ввода. Виджетоподобные объекты, которые не имеют окон - называемые в Motif гадгетами - являются подклассами от RectObj. Этот класс содержит реурсы геометрии, но не содержит цветов и трансляций.
Composite является базовым классом для всех виджетов, которые могут иметь дочерние виджеты. Этот класс поддерживает список своих дочерних виджетов и отвечает за управление их геометрией. Constraint является подклассом от Composite который поддерживает дополнительные данные для каждого дочернего виджета, представляющие ограничивающие ресурсы для дочерних виджетов.
Shell является базовам классом для всех виджетов-оболочек. Оболочки обертывают другие виджеты чьи окна являюся дочерними от корневого окна. Оболочки отвечают за взаимодействие с менеджером окон. Shell является подклассом Composite. Xt содержит следующие подклассы Shell:
Окружает виджеты, которые менеджер окон должен игнорировать, такие как меню.
Суперкласс для оболочек которым необходимо особым образом взаимодействовать с менеджером окон.
Подкласс от WMShell реализующий зависимое от набора компонентов поведение.
Подкласс от VendorShell для виджетов типа диалогов которые отображаются ненадолго в интересах других виджетов.
Подкласс от VendorShell для виджет верхнего уровня для компонент приложения.
Подкласс от TopLevelShell для виджетов верхнего уровня представляющих приложение как единое целое.
Motif содержит три обширные группы виджетов: примитивы и гадгеты, менеджеры, оболочки.
Примитивы это виджеты которые не имеют дочерних виджетов. Они обычно являются фундаментальными элементами для ввода и вывода, и они обычно используются как строительные кирпичики для композитных виджетов. XmPrimitive, подкласс от Core, является базовым классом для всех примитивов. XmPrimitive содержит базовые ресурсы цвета и предоставляет возможность клавиатурного перехода.
XmPrimitive используется только как суперкласс для классов с более специализированным поведением. Подклассами примитивов Motif являются следующие:
Используется для разделения других виджетов. Обычно выглядит как линия.
Отображает текст или пиксельное изображение. Является суперклассом для кнопок, предоставляет специфическое поведение, такое как клавиатерный переход внутри меню.
Подклассы XmCascadeButton, XmDrawnButton, XmPushButton и XmToggleButton от XmLabel производят некоторые действия когда активизируются или "нажимаются" пользователем. Подклассы имеют роль активизаторов меню, переключателей, кнопок и маленьких графических областей.
Управляет перемещением прокручиваемого горизонтально или вертикально виджета в фиксированной области просмотра.
Массив текстовых элементов из которого пользователь может выбрать один или более элемент.
Виджет для отображения и, возможно, редактирования текста. XmText может быть многострочным или ограниченным одной строкой. XmTextField является оптимизированным для одной строки вариантом XmText.
Гадгеты являются вариантами примитивов которые не имеют окон. Гадгеты имеют геометрию, но они наследуют цвета от их родителя и зависят от родителя в части распределения событий для них. XmGadget, подкласс RetObj, является базовым классом для гадгетов. Гадгет варианты существуют для сепараторов, меток и большинства кнопок. XmIconGadget, который отображает как текст так и пиксельные изображения в различных комбинациях, манипулируются виджетом XmContainer.
Смотрите Главу 10 для дополнительной информации о виджетах XmText и XmTextField. Смотрите главу 5 для дополнительной информации о других примитивах.
Менеджеры это виджеты которые обычно имеют дочерние виджеты и управляют их геометрией. XmManager, подкласс от Constraint, является базовым классом для менеджеров. Этот класс несет особую ответственность когда содержит дочерние гадгеты. Он предостваляет ресурсы цвета, которые наследуют его дочерние гадгеты, и он распределяет события ввода соответствующим гадгетам. Подклассами менеджеров являютя:
Окружает свой дочерние виджет тенью и свободным полем.
Показывает значение внутри диапазона и дополнительно позволяет пользователю устанавливать новое значение.
Распологает своих потомков, называемых панелями, вертикально или горизонтально (с лева на право или с права на лево, в зависимости от \textbl{XmNorientation}). Может также вставлять управляющий элемент, называемый сэшем, позволяющим пользователю устанавливать размер панелей.
Предоставляет область просмотра дочернего виджета реализую виртуальные скроллинг. Управляет полосам скроллинга для перемещения скроллируемого элемента в области просмотра.
Подкласс от XmScrolledWindow предоставляющий поддержку полосы меню и других специализированных областей.
Используется для реализации меню, групп радиокнопок и кнопос переключателей, обычно в качестве потомков содержащих кнопки. Также используется для расположения произвольных виджетов к строки, колонки или двумерные структуры.
Суперкласс для диалогов, виджетов которые представляют информацию пользователю или получают ее отпользователя. Диалоговым виджетом может быть BulletinBoard, предоставляющий базовое поведение, или специализированный подкласс. Частные подклассы представляют список из которого пользователь может сделать выбор, отображают имена файлов и позволяют пользователю выбратьодин из них, просят пользователя ввести команду и отображают сообщение. Один из подклассов,XmForm, предоставляет обобщенное основанное на ограничениях управление геометнией своих потомков.
Менеджер общего назначения предназначенные для использования в качестве области для выполениения графических операций.
Управляет наборами виджетов определенных видов (обычно IconGadget). Эти дочерние виджеты показываются в нескольких различных форматах расположения, выбираются с использованием различных типов и техники выделения и непосредственно управляются пользователем. Одно из возможных применений Container виджета это построение графического интерфейса пользователя для файловой системы.
Управляет виджетом текстового поля и виджетом списка. Пользователь может выбрать элемент и ComboBox посредством щелчка на нем в списке или набрав его непосредственно в текстовом поле.
Позволяет пользователю выбрать значение из кольцевого набора связанных взаимооднозначных вариантов которые отображаются последовательно. Например, пользователь может использовать SpinBox для выбора месяца в одном элементе и выбора дня месяца посредством другого.
Организовывает своих потомков в страницы, закладки, области состояния и прокрутчики страниц для моделирования настоящей записной книжки. Каждая страница в Notebook может содержит различные виды элементов. Например, первая страница может содержать текст в виджете Text, вторая страница может быть графическим изображением отображаемыми в виджете Label, и наконец третья страница может анкетой управляемой виджетом Form.
Motif содержит три класса оболочек:
Специализированная для Motif реализация соответствующего Xt класса. Среди других возможностей управляет взаимодействием с MWM.
Подкласс от TransientShell который содержит диалоги. Взаимодействует с BulletinBoard при всплытии и позиционировании временных диалогов.
Подкласс от OverrideShell который содержит меню.
Motif использует некоторое кольчество специализированных объектов не предназначенных для использования в создании виджетов. Эти объекты существуют в первую очередь для хранения ресурсов и другой информации которую сложно сделать доступной другим путем. XmDisplay сохраняет ресурсы специфичные для данного дисплея, а XmScreen сохраняет ресурсы специфичные для каждого экрана на котором приложение создает виджеты. Интерфейс drag and drop включает объекты представляющие некоторые аспекты транзакций drag and drop, включая общий контекст, точки выброса, иконки перетаскивания и перенос данных.
В дополнение к объектам Motif предоставляемыми стандартным набором компонентов, ваше приложение может использовать виджеты предоставляемими дркгими производителями. Вы также можете свои собственные виджеты. Смотрите Руководство по написанию виджетов Motif для дополнительной информации.
Xlib, Xt и Motif имеют заголовочные файлы (иниче называемые подключаемыми файлами) которые приложение должно включать в свой код. Однако, заголовочные файлы Motif сами подключают необходимые файлы Xt, которые в свою очередь подключают необходимые файла Xlib. Приложению обычно необходимо подключить только соответствующие файлы Motif.
Все Motif приложения должны подключать файл <Xm/Xm.h>. Этот файл содержит определения, необходимые всем приложениям. Каждый виджет Motif также имеет подключаемый файл. Приложение должно подключить эти заголовочные файлы для всех виджетов, которые оно создает. Дополнительно некоторые группы подпрограмм Motif имеют свои собственные заголовочные файлы. Необходимые подключаемые файлы для каждого виджета и подпрограммы Motif описаны в Справочник программиста Motif.
Вместо использования большого количества заголовочных файлов для конкретных виджетов и подпрограмм приложение может подключить файл <Xm/XmAll.h>. Этот файл объединяет все документированные заголовочные файлы Motif. Подключение <Xm/XmAll.h> может немного замедлить компиляцию; тем не менее его подключение не увеличивает размер результирующего приложения. Другими словами работа редактора связей никак не изменяется в результате подключения <Xm/XmAll.h> вместо подключения индивидуальных заголовочных файлов.
При создании Motif приложения разработчик связать программу с необходимыми библиотеками. Xlib, Xt, набор компонентов Motif и MRM имеют раздельные библиотеки. Приложение которое не использует MRM должно быть связано с библиотеками набора компонентов Motif, Xp, Xext, Xpm, Xt и Xlib. Приложение которое использует MRM должно быть связано с этими библиотеками и дополнительно с библиотекой MRM. Разаработчик также должен связать приложение с дополнительными бибилиотеками, в зависимости от платформы или операционной системы. Проконсультируйтесь у Вашего системного администратора и прочтите документацию производителя для получения дополнительной информации о библиотеках необходимых для Motif приложений.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |