GTK+ Reference Manual |
||||
---|---|---|---|---|
Использование GTK+ в X Window SystemИспользование GTK+ в X Window System X11 аспект использования GTK+ |
В UNIX, внутренний интерфейс X используется по умолчанию для GTK+. Таким образом вам не придётся делать что-то особенное чтобы скомпилировать её, всё должно "просто работать".
Чтобы использовать библиотеки нижнего уровня (low-level) Xlib в обычных GTK программах, смотрите документацию по взаимодействию GDK X Window System и GDK.
Внутренний интерфейс X понимает некоторые дополнительные аргументы командной строки.
--display display. Имя X display для открытия, вместо определенного переменной окруженияя DISPLAY.
--screen screen_number. Номер экрана в пределах отображенных по умолчанию. Это отменяет любой номер экрана определенный опцией командной строки --display или переменной окруженияя DISPLAY. Если этот экран не может быть открыт, GTK+ вернётся к экрану определённому в названии экрана. Эта опция бесполезна в интерактивном режиме; когда программа регистрирует командную строку в session manager для последующего перезапуска, это может сохранить экран включенным, не заботясь о перезапуске на различных дисплеях.
--sync. Делает все запросы X одновременно. Это полезная опция при отладке, но значительно замедляет выполнение.
--gxid-host host. Узел для контакта с демоном gxid; отменяет GXID_HOST переменную окруженияя.
--gxid-port port. Порт подключения gxid; отменяет переменную окруженияя GXID_PORT. Эта опция доступна, только если GTK+ сконфигурирован с параметром --gdk-target=x11.
На внутренний интерфейс X могут влиять некоторые дополнительные переменные окруженияя.
GXID_HOST, GXID_PORT. Узел и порт для контакта с демоном gxid. gxid необходим только на X servers которые не поддерживают использование указателя и расширенных устройств непосредственно, он доступен только если GTK+ сконфигурирована с параметром --with-xinput=gxi. XFree86 и Xorg X servers не имеют этого ограничения.
GDK_USE_XFT. Если эта переменная установлена в 1, то GTK+ будет использовать внутренний интерфейс Pango Xft вместо внутреннего интерфейса X когда это возможно (т.е., когда X server поддерживает XRender расширение и Pango собрана с поддержкой Xft).
Люди переходящие с Windows или MacOS находят некоторые аспекты X Window System удивительными. Этот раздел вводит некоторые основные понятия X концепции высшего уровня. Многие детали могут быть изучены в книге «Xlib Programming Manual» автора Adrian Nye; эта книга одинакова по объему с O'Reilly X Window System.
Стандарты другой важный ресурс, если вы вникнете в детали нижнего уровня X11, в особенности ICCCM и Extended Window Manager Hints specifications. freedesktop.org имеет ссылки на многие уместные спецификации.
GDK заменяет использование Xlib в GTK программах.
Другие оконные системы обычно помещают все свои функциональные возможности непосредственно в приложение. С X, каждое приложение привлекает три различных программы: X server, приложение (называется client потому что является клиентом X server), и специальный клиент называемый window manager.
X server отвечает за управление ресурсами, обработку процессов отрисовки, а также обрабатывает события, такие как события клавиатуры и мыши интересующие приложения. Таким образом приложения клиенты, могут просить X server создать окно, нарисовать круг, или переместить окна по кругу.
Менеджер окон отвечает за визуализацию рамки или границ окон; он также имеет возможность регулировать размер каждого окна, а также состояние окна, такое как минимизация или максимизация и т.д.. В Windows и MacOS большинство из этого выполняет само приложение. В X11, если вы хотите модифицировать состояние окна или изменить рамку, вы должны попросить window manager сделать это от вашего имени, используя установленное соглашение (convention).
GTK+ имеет функции для того, чтобы просить window manager выполнять разные действия; например gtk_window_iconify() или gtk_window_maximize() или gtk_window_set_decorated(). Имейте в виду, что gtk_window_move() и калибровка окна в конечном счете контролируется менеджером окон, также большинство менеджеров окна будут игнорировать некоторые запросы время от времени, в интересах улучшения интерфейса пользователя.