Управляющие компоненты это виджеты и гаджеты с которыми непосредственно взаимодействует пользователь. Они обычно завершают дерево виджетов, корнем которого является оболочка верхнего уровня приложения. В большинстве случаев управляющие компоненты являются подклассами от XmPrimitive или XmGadget, а их родительские виджеты -- подклассами от XmManager (хотя Регулятор XmScale и является менеджером, но чаще всего приложение работает с ним как и с примитивом). Motif предоставляет следующие базовые управляющие компоненты:
метки, кнопки и разделители;
полосы прокрутки;
регуляторы;
списки;
текст и текстовое поле.
Фактически все базовые управляющие компоненты являются подклассами от Примитива XmPrimitive или Гаджета XmGadget. В свою очередь класс Примитив XmPrimitive является подклассами от Xt класса Ядро Core, а класс Гаджет XmGadget -- от Xt класса Прямоугольный Объект RectObj.
Класс Ядро Core предоставляет базовые атрибуты для всех виджетов, имеющих связанные с ними окна. Он имеет следующие группы ресурсов:
определяющие x и y координаты, ширину и высоту, ширину обрамления виджета;
определяющие является или нет виджет чувствительным или может ли он принимать события ввода от менеджера событий Xt;
характеризующие окно, включая цвет или пиксельное изображение фона и обрамления, цветовую палитру, глубину и экран;
управляющие автоматическим отображением окна при постановке виджета на управление;
ресурс, задающий связывающтй трансляции с действиями;
набор акселераторов, являющихся таблицей трансляции ограниченной контекстом конкретного виджета.
Класс Прямоугольный Объект RectObj является фундаментом для всех классов гаджетов, по своей структуре он аналогичен классу Ядро Core, но в нем отсутствуют атрибуты связанные с наличием окна. Ресурсы Прямоугольного Объекта RectObj управляют положение и размером прямоугольной области гаджета внутри его родительского виджета. Также ресурсы Прямоугольного Объекта RectObj определяют является или нет гаджет чувствительным.
Примитив XmPrimitive является фундаментальным классом Motif для построения всех базовых управляющих компонентов -- виджетов, не способных иметь потомков. Он включает следующие ресурсы и поведение:
цвет переднего плана, цвета или пиксельные изображения для верхней и нижней тенией и толщину тени;
толщину и цвет или пиксельное изображение для прямоугольника подсветки, которые отображается когда виджет владеет клавиатурным фокусом;
ресуры, определяющте может ли пользователь перейти на виджет и является ли он табуляционной группой;
ресурс, определяющий какие единицы измерения используем виджет для своих ресурсов размера и положения;
процедуры обратного вызова, вызываемые виджетом при нажатии пользователем клавиши osfHelp;
ресурс для испоьзования приложением с целью ассоциирования с виджетом некоторых произвольных данных;
трансляции и действия для клавиатурного перехода на другой виджет;
ресурс, определяющий направление в котором распологаются компоненты примитива (включая строки);
процедуры обратного вызова, позволяющие приложению определить какое всплывающее меню должно автоматически выводиться.
Гаджет XmGadget является фундаментальным классом Motif для построения всех базовых управляющих гаджетов. Гаджет XmGadget эквивалентен классу Примитив XmPrimitive за исключением двух основных отличий:
он не имеет связанного с ним окна;
он не имеет трансляций и действий. Родитель-менеджер управляет переходом между своими потомакми-гаджетами, отслеживает какой из гаджетов содержит фокус ввода и диспетчеризирует к нему события.
Пред. | Начало | След. |
!!! Структура программы, использующей UIL и MRM | Уровень выше | Метки, кнопки и разделители |