А. Полищук - Программирование в X Window средствами Free Pascal

Здесь есть возможность читать онлайн «А. Полищук - Программирование в X Window средствами Free Pascal» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Программирование в X Window средствами Free Pascal: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Программирование в X Window средствами Free Pascal»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Программирование в X Window средствами Free Pascal — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Программирование в X Window средствами Free Pascal», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

В ряде случаев стоит сообщить оконному менеджеру о том, какой размер окна мы хотим получить, и в каких пределах будут изменяться его размеры. Например, для терминальной программы (такой, как xterm), хотелось бы, чтобы окно всегда содержало полное количество строк и столбцов. В других случаях нежелательно давать возможность менять размер окна (например, в диалоговых окнах). Эти пожелания можно передать оконному менеджеру, хотя ничто не помешает ему их проигнорировать. Для этого необходимо создать структуру данных, заполнить ее необходимыми данными и затем использовать функцию XSetWMNormalHints():

(* указатель на структуру рекомендаций о размерах. *)

var

win_size_hints: PXSizeHints;

win_size_hints:= XAllocSizeHints();

if (win_size_hints=nil) then begin

writeln('XAllocSizeHints - нет памяти');

halt(1);

end;

(* Инициализация структуры *)

(* Вначале укажем, что передаются пожелания о размерах: установим минимальный и начальный размеры. *)

win_size_hints^.flags:= PSize OR PMinSize;

(* Затем указываем требуемые границы. В нашем случае - создаем окно минимальным размером 300x200 пикселей и устанавливаем начальный размер в 400x250. *)

win_size_hints^.min_width:= 300;

win_size_hints^.min_height:= 200;

win_size_hints^.base_width:= 400;

win_size_hints^.base_height:= 250;

(* Передаем пожелания о размерах оконному менеджеру. *)

XSetWMNormalHints(display, win, win_size_hints);

(* В конце необходимо освободить память из-под структуры. *)

XFree(win_size_hints);

Дополнительные параметры окна: способ работы с клавиатурой, вид и положение пиктограммы. Идентифицируется атомом XA_WM_HINTS и имеет тип XA_WM_HINTS. Данные свойства - структура типа TXWMHints. Для задания свойства используется процедура XSetWMHints(). Структура типа XWMHints, передаваемая функции XSetWMHints(), должна быть подготовлена с помощью XAllocWMHints():

var

win_hints: PXWMHints;

icon_pixmap: TPixmap;

const

icon_bitmap_width=20;

icon_bitmap_height=20;

(* Определим битовое изображение в формате Х - оно может быть создано программой xpaint *)

icon_bitmap_bits: array [0…59] of byte = (

$60, $00, $01, $b0, $00, $07, $0c, $03, $00, $04, $04, $00,

$c2, $18, $00, $03, $30, $00, $01, $60, $00, $f1, $df, $00,

$c1, $f0, $01, $82, $01, $00, $02, $03, $00, $02, $0c, $00,

$02, $38, $00, $04, $60, $00, $04, $e0, $00, $04, $38, $00,

$84, $06, $00, $14, $14, $00, $0c, $34, $00, $00, $00, $00

);

win_hints:= XAllocWMHints();

if (win_hints=nil) then begin

writeln('XAllocWMHints - нет памяти');

halt(1);

end;

(* установим пожелания о состоянии окна, позиции его иконки и ее виде *)

win_hints^.flags:= StateHint OR IconPositionHint OR IconPixmapHint;

(* Загрузим заданное битовое изображение и создадим из него пиксельную карту Х. *)

icon_pixmap:= XCreateBitmapFromData(display, win, PChar(icon_bitmap_bits), icon_bitmap_width, icon_bitmap_height);

if (icon_pixmap=nil) then begin

writeln('XCreateBitmapFromData: ошибка создания пиксмапа');

halt(1);

end;

(* Затем детализируем желаемые изменения. *)

(* в нашем случае - сворачиваем окно, определяем его иконку и устанавливаем позицию иконки в левом верхнем углу экрана. *)

win_hints^.initial_state:= IconicState;

win_hints^.icon_pixmap:= icon_pixmap;

win_hints^.icon_x:= 0;

win_hints^.icon_y:= 0;

(* Передаем пожелания оконному менеджеру. *)

XSetWMHints(display, win, win_hints);

(* В конце необходимо освободить память из-под структуры. *)

XFree(win_hints);

Получить данные свойства можно с помощью XGetWMHints().

Атрибут, характеризующий "временное" окно. Идентифицируется атомом XA_WM_TRANSIENT_FOR и имеет тип XA_STRING. Свойство задается для окон, появляющихся на экране для выполнения вспомогательных функций (диалоги, меню). Такие объекты рассматриваются менеджером по особому. Например, он может не добавлять к окну заголовок и рамку. Данные свойства - идентификатор окна родительского по отношению к данному. Задается свойство с помощью процедуры XSetTransientForHint().

Имена программы и ее класса , идентифицируется атомом XA_WM_CLASS и имеет тип XA_STRING. Данные свойства - структура типа TXClassHints. Задается свойство с помощью процедуры XSetClassHint() и может быть получено с помощью XGetClassHint().

Если окно (окна) программы имеют собственную цветовую палитру, то приложение должно соответствующим образом задать для него атрибут colormap. Программа заносит идентификатор окна (идентификаторы окон) в список, ассоциированный со свойством, имя которого WM_COLORMAP_WINDOWS. Делается это процедурой XSetWMColormapWindows(). Получить список, уже находящийся в свойстве, можно, обратившись к XGetWMColormapWindows().

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Программирование в X Window средствами Free Pascal»

Представляем Вашему вниманию похожие книги на «Программирование в X Window средствами Free Pascal» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


libcat.ru: книга без обложки
Александр Цветков
libcat.ru: книга без обложки
Gene Wolfe
Отзывы о книге «Программирование в X Window средствами Free Pascal»

Обсуждение, отзывы о книге «Программирование в X Window средствами Free Pascal» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x