- •XSetNormalHints(dpy,win,&hint)
- •XDrawText() ( xDrawText16( ) ) позволяет рисовать несколько строк сразу, используя при этом разные шрифты. Каждая рисуемая единица задается структурой xTextItem.
- •IncludeInferiors — графика рисуется поверх всех подокон
- •XrmOptionDescRec pOptions [ ], Cardinal nNumOpt,
- •XtMainLoop( ) автоматически завершает программу по требованию менеджера окон.
- •VendorShell. Этот класс предназначен для того, чтобы дать возможность взаимодействия со специальными менеджерами окон.
- •XtArgVal value;
- •XtCreateWidget( ) возвращает идентификатор созданного объекта. В следующем примере создается widget класса Core, имеющий ширину и высоту равные 100 и 150 пикселов соответственно.
- •Void ActionProc (Widget prW, xEvent *prEvent, String *psParams, Cardinal *nNumParams);
- •XtActionProc proc;
- •Xt поддерживает набор специальных символов, употребляемых с модификаторами для расширения возможностей использования последних .
- •3. Обработчики событий.
- •Void HandlerProc (Widget prWidget, XtPointer pUserData, xEvent *prEvent, Boolean *pnContinue);
VendorShell. Этот класс предназначен для того, чтобы дать возможность взаимодействия со специальными менеджерами окон.
TopLevelShell. Widget данного класса, как правило, используются как shell-объекты дерева объектов.
TransientShell. Этот класс отличается от предыдущего только особенностями взаимодействия с менеджером окон. Окна widget данного класса не могут быть минимизированы (превращены в пиктограмму). Но если в пиктограмму превращается "родитель" объекта класса TransientShell, то окно widget убирается с экрана. Класс TransientShell используется для создания диалогов.
ApplicationShell. Это подкласс класса TopLevelShell. Программа может иметь, как правило, только один экземпляр, принадлежащий классу ApplicationShell.
Атрибуты (ресурсы) объектов
Каждый из классов widget, а следовательно, и создаваемые на его основе объекты, имеют достаточно большое количество параметров. В терминах Xt они называются "ресурсы".
Ресурсы объектов однозначно идентифицируются символическими константами, начинающимися с букв "XtN". Например, класс Core имеет параметры XtNx, XtNy, XtNwidth, XtNheight, определяющие начальное положение окна на экране и его размеры. Класс Shell имеет атрибут XtNsaveUnder, "говорящий" о том, надо или нет сохранять содержимое экрана под окном при показе последнего.
Управление объектами
Для создания любого объекта, кроме shell-widget, можно использовать процедуру
Widget XtCreateWidget (String psName, WidgetClass pClass,
Widget prParent, ArgList arArgs, Cardinal nNumArgs);
Здесь первый аргумент — это произвольная строка, содержащая имя создаваемого widget. Оно используется для получения значений ресурсов объекта из базы данных ресурсов, а также для других целей. Второй аргумент задает класс widget. Третий аргумент — это родительский объект, который должен быть уже создан. В качестве последнего может быть указан shell-widget или любой объект, который может иметь подобьекты (принадлежит классу Composite или его подклассам). Четвертый и пятый аргументы XtCreateWidget() определяют значения дополнительных ресурсов, задаваемых при создании widget. Тип ArgList определен в файле "Intrinsic.h" следующим образом:
typedef struct {
String name;
XtArgVal value;
} Arg, *ArgList;
Здесь name представляет предопределенную строковую константу, задающую имя соответствующего ресурса (например, XtNwidth). value — это значение атрибута. Это поле имеет специальный тип XtArgVal, определение которого является системно-зависимым. Как правило, размер данного поля достаточен для того, чтобы поместить туда целое число или указатель. Но его не достаточно, например, для задания чисел типа double. Общее правило таково: если размер значения ресурса меньше sizeof (XtArgVal), то в value содержится непосредственно само значение, в противном случае поле value есть адрес области памяти, содержащей значение ресурса. Если аргументы arArgs и nNumArgs в XtCreateWidget( ) не используются, то они должны быть равны NULL и 0 соответственно.
Если ресурс не найден в списке arArgs, то его значение ищется в базе данных ресурсов программы. В случае, когда его нет и там, параметр получает значение по умолчанию.
