Xaw (Xaw)

Перейти к навигации Перейти к поиску
Графический стек X Window System

Xaw (англ. X Window System Athena widget set) — набор виджетов для реализации простых интерфейсов пользователя, основанный на X Toolkit Intrinsics. Распространяется с X Window System.

Пример программы

[править | править код]

Следующая программа создает кнопку в окне, с помощью Athena Widget:

/*
 * Компилируется строкой cc -o simple simple.c -lXaw -lXt -lX11
 */
#include <X11/Intrinsic.h>
#include <X11/StringDefs.h>
#include <X11/Shell.h>
#include <X11/Xaw/Form.h>
#include <X11/Xaw/Command.h>
#include <stdlib.h>

XtAppContext app_context;

void quit_proc(Widget w, XtPointer client_data, XtPointer call_data)
{
    XtDestroyApplicationContext(app_context);
    exit(0);
}

int main(int argc, char **argv)
{
    Widget toplevel, form, w;

    toplevel = XtOpenApplication(&app_context, "XFirst", NULL, 0, &argc,
				 argv, NULL, applicationShellWidgetClass,
				 NULL, 0);
    form =
	XtVaCreateManagedWidget("form", formWidgetClass, toplevel, NULL);
    w = XtVaCreateManagedWidget("quit_button", commandWidgetClass, form,
				XtNlabel, "Quit", NULL);
    XtAddCallback(w, XtNcallback, quit_proc, NULL);
    XtRealizeWidget(toplevel);
    XtAppMainLoop(app_context);
}