Интернет магазин китайских планшетных компьютеров



Компьютеры - Xlib - Функции XLib

07 мая 2011


Оглавление:
1. Xlib
2. Функции XLib



Функции XLib могут быть сгруппированы в несколько категорий:

  1. Операции управления соединением с X сервером, такие как XOpenDisplay, XCloseDisplay
  2. Запросы X серверу, такие как XCreateWindow, XCreateSimpleWindow, XCreateGC, XCreateColomap
  3. Операции клиентской части, такие как управления событиями: XNextEvent, или оперции с локальными данными XCreateImage.

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

Следующий пример программы устанавливает соединение с X сервером и выводит на экран окно с приветствием:

 /*
  Компилируется след. строкой:   cc test.c -o test -lX11
 */
 
 #include <X11/Xlib.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <errno.h>
 
 extern int errno;
 
 int main {
   Display *d;
   Window w;
   XEvent e;
   char *msg = "Hello, World!";
   int s;
 
   /* Соединиться с X сервером, если X сервер на удаленной машине
    * следует разрешить на машине, где запущен X Server 
    * удаленные соединения командой xhost+
    */
    if )) == NULL) {
        printf);
        exit;
    }
 
   s = DefaultScreen;
 
   /* Создать окно */
   w = XCreateSimpleWindow, 10, 10, 200, 200, 1,
                           BlackPixel, WhitePixel);
 
   /* На какие события будем реагировать */
   XSelectInput;
 
  /* Вывести окно на экран */
   XMapWindow;
 
   /* Бесконечный цикл обработки событий */
   while  {
     XNextEvent;
 
    /* Перерисовать окно */
     if  {
       XFillRectangle, 20, 20, 10, 10);
       XDrawString, 50, 50, msg, strlen);
     }
   /* При нажатии кнопки-выход */
     if 
       break;
   }
 
  /* Закрыть соединение с X сервером */
   XCloseDisplay;
 
   return 0;
 }

Клиент создает соединение с X сервером функцией XOpenDisplay, в которую передается указатель на DISPLAY, определенный через переменную среды исполнения. В UNIX это можно сделать командой export DISPLAY=".0:0". В качестве переменной DISPLAY можно указать и удаленную машину с запущенным X сервером. Функция DefaultScreen выбирает текущий экран, XCreateSimpleWindow создает окно, а XSelectInput определяет события, на которые окно должно реагировать. XMapWindow выводит окно на экран, а XNextEvent выбирает из очереди событие, которое выше было определено. При событии Expose в окне рисуется прямоугольник и выводится строка "Hello World!". При нажатии клавиши на клавиатуре программа завершает работу.



Просмотров: 2060


<<<