Практическое программирование на Tcl и Tk [Четвертое ed.]
584590661X
В этой книге рассматривается широкий спектр вопросов, связанных с применением языка Tcl и расширения Тк. Здесь обсуждают
234
42
23MB
Russian
Pages 1125
[1124]
Year 2004
Report DMCA / Copyright
DOWNLOAD DJVU FILE
Table of contents :
Оглавление
Содержание
Введение
Некоторые аргументы в пользу выбора Tcl
Версии Tcl и Тк
Расширения Tcl и Тк
Tcl в World Wide Web
Ftp-архивы
Группы новостей
На кого рассчитана эта книга
Как работать с данной книгой
Примеры программ
Соглашения о представлении материала
Пиктограммы
Как организована данная книга
Особенности четвертого издания книги
Благодарности за помощь в подготовке первого издания книги
Благодарности за помощь в подготовке второго издания книги
Благодарности за помощь в подготовке третьего издания книги
Благодарности за помощь в подготовке четвертого издания книги
Как связаться с автором книги
Ждем ваших отзывов
Часть I. Основы Tcl
Глава 1. Общие сведения о языке Tcl
Команды Tcl
Hello, World!
Переменные
Подстановка команд
Математические выражения
Подстановка символов, представленных с помощью обратной косой черты
Группировка с помощью фигурных скобок и двойных кавычек
Особенности использования квадратных скобок
Группировка перед подстановкой
Группировка математических выражений с помощью фигурных скобок
Примеры подстановки
Процедуры
Пример вычисления факториала
Дополнительные сведения о переменных
Особенности применения различных символов в именах переменных
Команда unset
Проверка наличия переменных
Дополнительные сведения о математических выражениях
Комментарии
Правила подстановки и группировки
Особенности группировки и подстановки
Справочная информация
Последовательности символов, начинающиеся с обратной косой черты
Арифметические операции
Встроенные математические функции
Основные Tcl-команды
Глава 2. Первые шаги
Кохманда source
Tcl-сценарии в системе Unix
Главное меню Windows
Macintosh OS 8/9 и ResEdit
Macintosh OS X
Команда console
Параметры командной строки
Опции командной строки, отображаемые программой wish
Предопределенные переменные
Глава 3. Простой CGI-сценарий
Общие сведения о языке HTML
Стандарт CGI и динамическое создание Web-страниц
Сценарий guestbook.cgi
Использование библиотечного файла
Формирование начала HTML-документа
Данные, генерируемые CGI-сценарием
Использование массива Tcl в качестве базы данных
Создание HTML-форм и обработка данных, введенных пользователем
Форма newguest.html
Пакеты ncgi и cgi.tcl
Сценарий newguest.cgi
Сохранение данных с помощью Тсl-сценариев
Обработка ошибок в CGI-сценариях
Усовершенствование сценария
Глава 4. Обработка строк
Команда string
Индексы
Строки в составе выражений
Сравнение строк с шаблонами
Классы символов
Преобразование с помощью карты символов
Команда append
Команда format
Команда scan
Команда binary
Шаблоны форматирования
Примеры
Двоичные данные и обмен с файлами
Источники дополнительных сведений
Глава 5. Списки
Списки в языке Tcl
Формирование списков
Команда list
Команда lappend
Команда lset
Команда concat
Извлечение элементов списков: команды llength, lindex и Irange
Изменение списков: команды linsert и lreplace
Поиск в списке: команда lsearch
Сортировка списков: команда lsort
Команда split
Команда join
Источники дополнительных сведений
Глава 6. Управляющие структуры
Выражение if then else
Команда switch
Комментарии в составе команды switch
Команда while
Команда foreach
Использование нескольких переменных цикла
Работа с несколькими списками
Команда for
Команды break и continue
Команда catch
Обработка ситуаций, не являющихся ошибочными
Команда error
Команда return
Глава 7. Процедуры и область видимости
Команда ргос
Изменение имен команд с помощью команды rename
Область видимости
Команда global
Передача имени с помощью команды upvar
Создание псевдонимов с помощью команды upvar
Использование команды upvar для поддержки состояния объектов
Пространства имен и команда upvar
Команды, работающие с именами переменных
Глава 8. Массивы Tcl
Языковые средства для работы с массивами
Индексы
Переменные массивов
Команда array
Преобразование массивов в списки
Передача имен массивов
Создание структур данных на базе массивов
Простые записи
Стек
Список массивов
Простая база данных
Альтернативы использованию массивов
Глава 9. Работа с программами и файлами
Запуск программ с помощью команды exec
Переменная auto_noexec
Особенности выполнения команды exec в системе Windows
AppleScript в системе Macintosh
Команда file
Имена файлов на различных платформах
Формирование пути: команда file join
Выделение компонентов пути: команды split, dirname, tail
Действия с файлами и каталогами
Копирование файлов
Создание каталогов
Фиксированные и символьные ссылки
Удаление файлов
Переименование файлов и каталогов
Атрибуты файлов
Использование команд ввода-вывода
Открытие файлов
Создание канала связи с процессом
Расширение Expect
Чтение и запись данных
Команды puts и gets
Команда read
Окончание строки символов
Произвольный доступ к данным
Закрытие каналов ввода-вывода
Текущий каталог: команды cd и pwd
Действия с файлами с использованием команды glob
Расширение символа ~
Команды exit и pid
Переменные окружения
Команда registry
Часть II. Расширенные средства Tcl
Глава 10. Цитирование и использование команды eval
Формирование кода с помощью команды list
Команда eval
Команды, выполняющие конкатенацию параметров
Команды, обеспечивающие обратный вызов
Командный префикс
Динамическое формирование процедур
Выполнение конкатенации в команде eval
Использование команды eval в процедуре оболочки
Проблемы с цитированием в команде eval
Команда uplevel
Команда subst
Обработка строк с помощью команды subst
Глава 11. Регулярные выражения
В каких случаях целесообразно использовать регулярные выражения
Решение часто возникающих проблем
Правила записи регулярных выражений
Сравнение символов
Наборы символов
Итераторы
Оператор выбора
Использование якорей
Использование обратной косой черты
Порядок установления соответствия
Выделение подшаблонов
Расширенные регулярные выражения
Совместимость с шаблонами, поддерживаемыми в Tcl 8.0
Последовательности, начинающиеся с обратной косой черты
Классы символов
"Экономное" сопоставление
Итераторы с ограниченным числом повторений
Обратные ссылки
Упреждающее сравнение
Коды символов
Элементы замены
Классы эквивалентности
Сравнение, чувствительное к переводу строки
Встроенные опции
Открытый синтаксис
Синтаксис регулярных выражений
Команда regexp
Шаблон для разбора URL
Проблемы, возникающие при использовании итераторов
Примеры регулярных выражений
Команда regsub
Преобразование данных в программу с помощью regsub
Декодирование URL
Разбор CGI-параметров
Декодирование HTML-примитивов
Простая программа разбора HTML-кода
Удаление HTML-комментариев
Команды, использующие регулярные выражения
Глава 12. Библиотеки сценариев и пакеты
Доступ к пакетам: переменная auto_path
Использование пакетов
Автоматическая загрузка пакетов
Пакеты, реализованные в виде С-программ
Порядок загрузки пакетов
Команда package
Создание библиотек с помощью файла tcllndex
Команда unknown
Автозагрузка
Запрет использования библиотеки: auto_noload
Соглашения, действующие при интерактивной работе
Автоматический вызов программ
Предыстория вызова команд
Сокращения имен команд
Среда оболочки Tcl
Расположение библиотеки сценариев Tcl
Процедура tcl_findLibrary
Стиль программирования
Префиксы имен процедур
Глобальные массивы и представление переменных состояния
Официальные руководства
Глава 13. Сведения об интерпретаторе и средства отладки
Команда clock
Команда info
Переменные
Процедуры
Стек вызова
Выполнение команд
Сценарии и библиотеки
Номера версий
Среда выполнения
Выполнение программ на различных платформах
Контроль переменных и команд
Контроль выполнения команд
Переменные, предназначенные только для чтения
Создание элементов массива с помощью команды trace
Предыстория вызова команд
Вызов команды history
Обращение к предыстории в Tcl и С shell
Отладка
Tcl Dev Kit
Отладчик с расширенными возможностями
Инструмент Checker
Инструмент Compiler
Инструмент TclApp
Инструмент Service Manager
Инструмент Inspector
Прочие инструменты
Консоль tkcon
Critcl
Команда bgerror
Команда tkerror
Контроль производительности программ
Информация о времени в файле протокола
Tcl-компилятор
Глава 14. Пространства имен
Использование пространств имен
Переменные в пространствах имен
Составные имена
Поиск команд
Вложенные пространства имен
Импортирование и экспортирование процедур
Пространства имен и обратный вызов
Интроспекция
Команда namespace
Преобразование существующих пакетов для работы с пространствами имен
Объектная система [incr Tcl]
Объектная система xotcl
Замечания
Имена компонентов, изображений и интерпретаторов
Команда variable в глобальной области видимости
Автозагрузка и процедура auto_import
Пространства имен и команда uplevel
Особенности именования пространств имен
Дополнительные операции
Глава 15. Интернационализация
Наборы символов pi кодировки
Системная кодировка
Кодирование файлов и команда fconfigure
Сценарии, представленные в различных кодировках
Unicode и UTF-8
Двоичная кодировка
Преобразование кодировок
Команда encoding
Каталоги сообщений
Определение локального языка
Управление файлами каталогов сообщений
Каталоги сообщений и пространства имен
Пакет msgcat
Глава 16. Программы, управляемые событиями
Цикл обработки событий Tcl
Команда after
Команда fileevent
Команда vwait
Команда fconfigure
Неблокирующий режим ввода-вывода
Команда fblocked
Буферизация
Преобразование символа конца строки
Обработка символа конца файла
Последовательные устройства
Кодировки
Настройка каналов ввода-вывода
Глава 17. Использование сетевых гнезд
Сетевые расширения Tcl
Scotty
Стандартная библиотека Tcl
HTTP
Гнезда на стороне клиента
Опции, используемые при создании клиентских гнезд
Серверные гнезда
Опции, используемые при создании серверных гнезд
Служба echo
Получение данных по протоколу HTTP
Proxy-серверы
Запрос HEAD
Запросы GET и POST
Команда fcopy
Пакет http
Команда http::config
Команда http::geturl
Команда http::formatQuery
Команды http::register и http::unregister
Команда http::reset
Команда http::cleanup
Basic Authentication
Глава 18. Web-сервер TclHttpd
Интеграция TclHttpd с прикладными программами
Архитектура TclHttpd
Добавление кода к TclHttpd
Модификация главной программы
Обработчики доменов
Состояние соединения и данные запроса
Пакеты html и ncgi
Передача клиенту результатов обработки запроса
Application Direct
Обработка данных, содержащихся в запросе
Работа с MIME-типами
Типы документов
Шаблоны HTML + Tcl
Размещение Tcl-кода
Шаблоны и структура Web-узла
Использование переменных для хранения информации о Web-узле
Обработчики данных форм
Обработчики Application Direct
Шаблоны для обработчиков данных форм
Формы самопроверки
Пакет html
Назначение процедур
Стандартные модули Application Direct
Информация о состоянии сервера
Отладка
Передача почтовых сообщений
Дистрибутивный пакет TclHttpd
Запуск сервера
Состав дистрибутивного пакета
Настройка сервера
Опции командной строки
Имя сервера и номер порта
Идентификатор пользователя и группы
Адрес администратора Web-узла
Корневой каталог документов
Различные установки для работы с документами
Шаблоны документов
Файлы протоколов
Каталоги CGI
Глава 19. Работа с несколькими интерпретаторами и использование Safe-Tcl
Команда interp
Создание интерпретаторов
Иерархия интерпретаторов
Имя интерпретатора в роли команды
Использование команды list в составе interp eval
Защищенные интерпретаторы
Псевдонимы команд
Интроспекция псевдонимов
Скрытые команды
Подстановка
Поддержка ввода-вывода защищенными интерпретаторами
Защищенная база
Политики безопасности
Ограничение доступа к гнездам
Ограничения на использование временных файлов
Защищенная команда after
Глава 20. Safe-Tk и дополнительный модуль браузера
Тк в ведомых интерпретаторах
Встроенные окна Тк
Ограничения Safe-Tk
Дополнительный модуль браузера
Переменные embed_args и plugin
Пример дополнительного модуля
Установка дополнительного модуля
Политики безопасности и дополнительный модуль
Пакет browser
Настройка политик безопасности
Файл config/plugin.cfg
Конфигурационные файлы для политик
Наборы возможностей
Создание новой политики безопасности
Глава 21. Многопотоковые Тсl-сценарии
Что такое поток
Поддержка потоков в Tcl
Подготовка Tcl-интерпретатора с поддержкой потоков
Использование расширений с многопотоковыми сценариями
Использование расширения Thread
Создание потоков
Создание соединяемых потоков
Передача сообщений потокам
Передача синхронных сообщений
Передача асинхронных сообщений
Сохранение и освобождение потоков
Обработка ошибок
Разделяемые ресурсы
Управление каналами ввода-вывода
Доступ к файлам из различных потоков
Передача каналов между потоками
Разделяемые переменные
Мютексы и переменные условий
Мютексы
Переменные условий
Пулы потоков
Команды пакета Thread
Пространство имен thread
Пространство имен tsv
Пространство имен tpool
Глава 22. Tclkit и Starkit
Использование Tclkit
Структура файла Starkit
Доставка приложений в виде файлов Starkit
Виртуальные файловые системы
Обращение к содержимому ZIP-файла с помощью VFS
Использование sdx для сборки приложений
Создание простого файла Starkit
Просмотр содержимого Starkit-файла
Стандартная организация пакета
Создание файла Starpack
Использование виртуальной файловой системы пакета Starkit
Создание tclhttpd.kit
Создание разделяемых файлов Starkit
Metakit
Модель данных Metakit
Обращение к базе данных Metakit
Создание просмотров Metakit
Сохранение данных в Starkit-файле
Wikit и Wiki
Особенности применения Starkit-файлов
Наборы документов
Самообновляющиеся приложения
Простые инсталляторы
Часть III. Основы Тк
Глава 23. Общие сведения о Тк
Тк-программа "Hello, World!"
Именование компонентов Тк
Настройка компонентов Тк
Атрибуты компонентов Тк и база ресурсов
Справочная информация Тк
Команды Тк
Команды для создания компонентов
Команды для выполнения действий с компонентами
Процедуры поддержки
Наборы компонентов
BLT
Tix
[incr Tk] и [incr Widgets]
BWidgets
TkTable
Глава 24. Tk в примерах
ExecLog
Заголовок окна
Фрейм для кнопок
Командные кнопки
Текстовая метка и элемент ввода
Обработка нажатий клавиш и фокус ввода
Размеры текста и полоса прокрутки
Процедура Run
Процедура Log
Процедура Stop
Работа на различных платформах
Браузер
Изменение размеров окон
Управление состоянием
Поиск файлов
Каскадное меню
Текстовый компонент, предназначенный только для чтения
Тсl-оболочка
Текстовые маркеры, дескрипторы и связывание
Использование нескольких интерпретаторов
Внешний вид окон
Глава 25. Диспетчер компоновки pack
Размещение относительно направления
Размеры окон и команда pack propagate
Горизонтальное и вертикальное размещение
Модель полостей
Пространство компоновки и пространство отображения
Опция -fill
Внутреннее дополнение, задаваемое с помощью опций -ipadx и -ipady
Внешнее дополнение, задаваемое с помощью опций -padx и-pady
Изменение размеров окон и опция -expand
Фиксация
Очередь компоновки
Интроспекция
Особенности компоновки полос прокрутки
Выбор родительского компонента при компоновке
Исключение компонента из очереди компоновки
Правила компоновки
Команда pack
Стек окон
Глава 26. Диспетчер компоновки grid
Размещение компонентов в виде таблицы
Опция -sticky
Внешнее дополнение, реализуемое с помощью опций -padx и-pady
Внутреннее дополнение, реализуемое с помощью опций -ipadx и -ipady
Размещение нескольких компонентов в одной ячейке
Объединение строк и столбцов
Атрибуты строк и столбцов
Дополнение строк и столбцов
Минимальный размер ячейки
Поддержка окон с изменяемыми размерами
Опция -uniform
Команда grid
Глава 27. Диспетчер компоновки place
Общие сведения о диспетчере компоновки place
Управление панелями
Разбор параметров и поддержка состояния
Выравнивание фреймов
Связывание событий
Управление размещением фреймов
Команда place
Глава 28. Компонент panedwindow
Использование panedwindow
Управление содержимым панелей
Программирование компонента panedwindow
Атрибуты panedwindow
Глава 29. Связывание команд с событиями
Команда bind
Команда bindtags
Обработка нажатий клавиш и фокус ввода
Использование команд break и continue
Определение новых дескрипторов связывания
Описание событий
События клавиатуры
События мыши
Прочие события
Связывания для окон верхнего уровня
Модификаторы
Последовательности событий
Виртуальные события
Генерация событий
Информация о событиях
Синтаксис команды event
Ключевые слова событий
Часть IV. Компоненты Тк
Глава 30. Кнопки и меню
Команды, вызываемые посредством кнопок, и области видимости
Кнопки, связанные с Тс1-переменными
Атрибуты кнопок
Операции с кнопками
Меню и menubutton
Строка меню
Системные меню
Контекстные меню
Меню опций
Расположение пунктов меню в несколько столбцов
События меню
Выбор пунктов меню с помощью клавиатуры
Виртуальные события меню
Выполнение действий с меню
Атрибуты меню
Пакет для работы с меню по именам
Комбинации клавиш для доступа к меню
Глава 31. База данных ресурсов
Общие сведения о ресурсах
Шаблоны ресурсов
Загрузка файла базы данных
Включение записей в базу данных
Обращение к базе данных
Кнопки, определяемые пользователем
Меню, определяемые пользователями
Приложение и пользовательские ресурсы
Особенности подстановки переменных
Глава 32. Простые компоненты Тк
Фреймы и окна верхнего уровня
Атрибуты компонентов frame, labelframe и toplevel
Использование компонента labelframe
Включение других приложений
Стили окон верхнего уровня
Компонент label
Атрибуты width и wrapLength
Атрибуты компонента label
Компонент message
Атрибуты компонента message
Выравнивание текста, содержащегося в компонентах label и message
Компонент scale
Связывания для компонента scale
Атрибуты компонента scale
Программирование линейных регуляторов
Команда bell
Глава 33. Полосы прокрутки
Использование полос прокрутки
Протокол взаимодействия с полосами прокрутки
Операция set полосы прокрутки
Операции xview и yview
Компонент scrollbar
Связывания для полос прокрутки
Атрибуты компонента scrollbar
Программирование полос прокрутки
Глава 34. Поля редактирования и инкрементные регуляторы
Использование полей редактирования
Проверка содержимого полей редактирования
Советы по использованию полей редактирования
Использование компонента spinbox
Связывания для компонентов entry и spinbox
Атрибуты компонентов entry и spinbox
Программирование полей редактирования и инкрементных регуляторов
Глава 35. Окна списков
Использование окон списков
Выполнение действий с содержимым компонента listbox
Программирование компонента listbox
Компонент listbox
Связывания для компонента listbox
Режим выделения Browse
Режим выделения single
Режим выделения extended
Режим выделения multiple
Связывания для прокрутки
Виртуальные события для компонента listbox
Атрибуты компонента listbox
Режим сетки
Глава 36. Текстовый компонент
Индексы
Вставка и удаление текста
Индексные выражения
Сравнение индексов
Текстовые маркеры
Направление маркера
Дескрипторы
Атрибуты дескрипторов
Использование атрибутов нескольких дескрипторов
Междустрочный интервал и выравнивание
Табуляторы
Выделение
Связывания для дескрипторов
Поиск текста
Встроенные компоненты
Встроенные изображения
Чтение содержимого текстового компонента
Получение информации о дескрипторах
Получение сведений о маркерах
Дамп содержимого компонента
Отмена выполненных действий
Связывания и события
Связывания для текстового компонента
Виртуальные события
Операции с текстом
Атрибуты текстового компонента
Глава 37. Компонент canvas
Координаты холста
Программа Hello, World!
Дескрипторы холста
Линейный регулятор для определения минимального и максимального значения
Объекты холста
Состояние холста и его объектов
Штриховые линии
Дуги
Битовые карты
Изображения
Линии
Овалы
Многоугольники
Прямоугольники
Текстовые объекты
Окна
Операции над компонентом canvas
Генерация Postscript-описаний
Атрибуты компонента canvas
Советы
Экранные координаты и координаты холста
Представление координат
Масштабирование и вращение
Работа с ресурсами
Объекты, определяемые посредством большого количества точек
Выбор объектов холста
Часть V. Особенности работы Тк
Глава 38. Выделение данных и буфер обмена
Модель выделения
Команда selection
Команда clipboard
Обработчики выделений
Обработчик выделения для холста
Глава 39. Диалоговые окна и фокус ввода
Стандартные диалоговые окна
Окна сообщений
Диалоговые окна для работы с файлами и каталогами
Диалоговые окна для выбора цвета
Диалоговые окна, определяемые разработчиком
Фокус ввода
Команда focus
Передача фокуса ввода
Захват ввода
Команда tkwait
Удаление компонентов
Совместное использование команд focus, grab и tkwait
Диалоговое окно для ввода строки
Комбинации клавиш и фокус ввода
Анимация и команда update
Глава 40. Атрибуты компонентов Тк
Установка значения атрибутов
Размеры компонента
Обрамление и рельеф
Подсветка компонентов, обладающих фокусом ввода
Дополнение и точки фиксации
Глава 41. Цвет, изображения и курсоры
Работа с цветом
Цветовые палитры
Цветовые значения
Карты отображения цвета и визуальные классы
Битовые карты и изображения
Команда image
Битовые карты
Атрибут bitmap
Изображения photo
Текстовый курсор
Курсор мыши
Глава 42. Шрифты и текстовые атрибуты
Именование шрифтов
Именованные шрифты
Системные шрифты
Шрифты Unicode
Имена шрифтов X Window
Особенности работы со шрифтами в ранних версиях Тк
Метрика шрифта
Команда font
Текстовые атрибуты
Размещение
Атрибуты, управляющие выделенным текстом
Использование сетки и изменение размеров
Программа, реализующая выбор шрифтов
Глава 43. Команда send
Возможности команды send
Команда send и авторизация X Window
Сценарий, осуществляющий передачу данных
Взаимодействие процессов
Удаленное выполнение eval с использованием сетевых гнезд
Глава 44. Диспетчеры окон
Команда win
Размеры, расположение и оформление окон верхнего уровня
Пиктограммы
Состояние сеанса
Прочие операции с диспетчером окон
Команда winfo
Передача команд между приложениями
Взаимосвязь между компонентами одного семейства
Размер компонента
Расположение компонентов
Виртуальное корневое окно
Работа с атомами и идентификаторами
Карты отображения цвета и визуальные классы
Команда tk
Глава 45. Поддержка пользовательских установок
Файлы, используемые приложением по умолчанию
Определение пользовательских установок
Интерфейс пользовательских установок
Управление файлом пользовательских установок
Отслеживание изменений в переменных пользовательских установок
Доработка пакета
Глава 46. Интерфейс для определения связываний
Совместная работа окон списков
Средства редактирования связываний
Сохранение и загрузка связываний
Часть VI. Программирование на языке С
Глава 47. С-программы и язык Tcl
Основные понятия
Основные подходы к написанию С-кода для Tcl-приложения
Командные процедуры С и объекты данных
SWIG
Инициализация Tcl
Вызов Тсl-сценариев
Использование библиотеки Tcl С
Создание загружаемых пакетов
Команда load
Процедура инициализации пакета
Использование Tcl_PkgProvide
Командная процедура С
Строковый командный интерфейс
Коды завершения командных процедур
Управление результирующими строками
Командный интерфейс Tcl_Obj
Управление счетчиком ссылок Tcl_Obj
Модификация значений Tcl_Obj
Проблемы, связанные с использованием разделяемых значений Tcl_Obj
Команда blob
Создание и удаление хэш-таблиц
Тсl_Аllос, ckalloc и malloc
Обработка параметров и использование Tcl_GetIndexFromObj
Создание и удаление элементов хэш-таблицы
Формирование списка
Поддержка ссылок на значения Tcl_Obj
Использование Tcl_ Preserve и Tcl_ Release для защиты данных
Макрос CONST в Tcl 8.4 API
Действия со строками и интернационализация
Интерфейс DString
Преобразование наборов символов
Tcl_Main и Tcl_AppInit
Tk_Main
Цикл обработки событий
Вызов сценариев из С-программ
Разновидности Tcl_Eval
Отказ от Tcl_Eval
Глава 48. Компиляция Tcl и программных расширений
Стандартная структура каталогов
Дистрибутивный пакет
Структура инсталляционного каталога
Построение Tcl из исходных кодов
Инструменты configure и autoconf
Стандартные опции программы configure
Инсталляция
Использование библиотек-заглушек
Использование autoconf
Файл tcl.m4
Создание шаблонов
Пример расширения
Файл configure.in
Файл Makefile.in
Стандартные файлы заголовков
Использование расширения
Глава 49. Создание компонентов Тк на языке С
Инициализация расширения
Структура данных компонента
Команда класса компонента
Команда экземпляра компонента
Установка и изменение значений атрибутов
Определение атрибутов компонента
Отображение часов
Поддержка оконных событий
Освобождение ресурсов
Глава 50. Библиотеки С
Общие сведения о С-библиотеке Tcl
Инициализация приложения
Создание и удаление интерпретаторов
Создание и удаление команд
Пакеты и динамическая загрузка
Управление результирующими строками
Распределение памяти
Работа со списками
Разбор команд
Конвейерная обработка
Отслеживание действий интерпретатора
Выполнение Тсl-команд
Информация об ошибках
Действия с Тсl-переменными
Обработка выражений
Преобразование чисел
Объекты Tcl
Основные типы объектов
Строковые объекты
ByteArray для двоичных данных
Динамические строки
Наборы символов
AssocData и структуры данных интерпретатора
Хэш-таблицы
Обработка опций
Регулярные выражения и проверка строк
Реализация цикла обработки событий
Работа с файлами
События таймера
Обратные вызовы времени бездействия
Ввод-вывод
Драйверы каналов ввода-вывода
Обработка имен файлов
Получение информации о файловой системе
Реализация виртуальной файловой системы
Поддержка потоков
Работа с сигналами
Нормальное завершение программы
Macintosh
Аварийное завершение
Прочие процедуры
Общие сведения о С-библиотеке Тк
Главная программа и параметры командной строки
Создание окон
Имя приложения для команды send
Настройка окон
Опции командной строки
Координаты окон
Стек окон
Информация об окнах
Установка атрибутов компонента
Выделение данных и буфер обмена
Интерфейс цикла обработки событий
Обработка оконных событий
Связывание событий
Захват событий клавиатуры
Обработка ошибок графического протокола
Использование базы данных ресурсов
Управление битовыми картами
Создание новых типов изображений
Использование изображений в составе компонентов
Изображения photo
Поддержка объектов холста
Диспетчеры компоновки
Идентификаторы строк
Карты отображения цвета и визуальные классы
Обрамления с имитацией трехмерных эффектов
Курсоры мыши
Шрифты и отображение текста
Графический контекст
Выделение памяти для карты пикселей
Экранные единицы измерения
Использование рельефа
Позиция фиксации
Стили концов линий
Стили соединения линий
Штриховые линии
Стили выравнивания текста
Атомы
Управление идентификаторами ресурсов
Дескрипторы приложений Windows
Часть VII. Изменения в составе Tcl и Тк
Глава 51. Tcl 7.4/Тк 4.0
Оболочка wish
Средства, поддержка которых была прекращена
Операция cget
Подсветка при наличии фокуса ввода
Связывания
Полосы прокрутки
Команда pack
Поддержка фокуса ввода
Команда send
Внутреннее дополнение
Значения переключателей опций
Поле редактирования
Меню
Окна списков
Атрибут geometry
Текстовый компонент
Атрибуты управления цветом
Работа с цветом и команда tk colormodel
Атрибут scrollincrement
Выделение
Команда bell
Глава 52. Tcl 7.5/Tk 4.1
Выполнение сценариев на нескольких платформах
Обработка имен файлов
Преобразование символа новой строки
Переменная tcl_platform
Команда console
Команда clock
Команда load
Команда package
Использование нескольких переменных цикла
Перенос цикла обработки событий из Тк в Tcl
Сетевые гнезда
Команда info hostname
Команда fconfigure
Использование нескольких интерпретаторов и Safe-Tcl
Диспетчер компоновки grid
Текстовый компонент
Поле редактирования
Глава 53. Tcl 7.6/Tk 4.2
Дополнительные операции file
Виртуальные события
Стандартные диалоговые окна
Диспетчер компоновки grid
Команда unsupported! в системе Macintosh
Глава 54. Tcl/Tk 8.0
Тсl-компилятор
Выявление ошибок при компиляции
Поддержка двоичных строк
Пространства имен
Safe-Tcl
Новый вариант lsort
Переменная tcl_precision
Соглашения 2000
Пакет http
Обмен через последовательные линии связи
Платформенно-независимые шрифты
Команда tk scaling
Включение приложений
Платформенно-ориентированные меню
Толщина обрамления
Платформенно-ориентированные кнопки и полосы прокрутки
Изображения в составе текстового компонента
Команда destroy
Команда grid
Модификации версии 8.0
Опция -error команды fconfigure
Элемент tcl_platform(debug)
Процедура tcl_findLibrary
Процедура auto_mkindex_old
Символы клавиш Windows для работы с меню
Событие MouseWheel
Атрибут fill для текста на холсте
Процедура safe::loadTk
Глава 55. Tcl/Tk 8.1
Unicode и интернационализация приложений
Опция -encoding команды fconfigure
Команда encoding
Пакет msgcat
С API для работы с UTF-8 и Unicode
Поддержка потоков
Команда testthread
Расширенные регулярные выражения
Работа со строками
Расширение DDE
Дополнительные возможности
Обмен через последовательные линии связи
Элемент tcl_platform(user)
Глава 56. Tcl/Tk 8.2
Модификация Trf
Эффективные операции со строками
Пустые имена массивов
Особенности создания дополнительных модулей для браузера
Управление последовательными портами в системе Windows
Синтаксис расширенных регулярных выражений
Глава 57. Tcl/Tk 8.3
Новые команды и опции для работы с файлами
Новые опции команды glob
Команды для работы с регулярными выражениями
Результаты команды scan
Удаление повторяющихся элементов списка с помощью lsort
Удаление элементов массива
Модификация команды clock
Поддержка отложенной загрузки пакетов
Дополнение Img
Шаблон штриховых линий
Особенности работы с холстом
Скрытый текст
Управление курсором мыши
Проверка содержимого поля редактирования
Прочие средства Тк
Модификация окон списков
Диалоговое окно для выбора каталогов
Взаимодействие оконного диспетчера с окнами верхнего уровня
Поддержка системных курсоров Windows
Поддержка колесика прокрутки в системе Unix
Новый модификатор Quadruple
X Input Method (XIM)
Модификации версии 8.3
Определение типа проверки
Диалоговое окно выбора файлов в системе Macintosh
Атрибут state для текстовых меток
Поддержка пиктограмм в системе Windows
Новые страницы интерактивной справочной системы
Глава 58. Tcl/Tk 8.4
Поддержка 64-битового кода
64-битовая арифметика
Преобразование 64-битовых значений
Поддержка 64-битовой файловой системы
Размер машинного слова
Дополнительные средства для работы с файловой системой
Виртуальные файловые системы
Команды file и glob
Работа со списками
Поиск в массивах
Расширенные средства поддержки обмена через последовательные линии
Новые операторы сравнения строк
Отслеживание выполнения команд
Интроспекция
Прочие изменения в составе Tcl
Удаление неиспользуемых переменных
Данные, возвращаемые командой regsub
Повышенное разрешение таймера в системе Windows
Модифицированная команда fcopy
Новые компоненты Тк
Отмена действий в текстовом компоненте и другие дополнения
Новые возможности диспетчеров компоновки pack и grid
Несимметричное дополнение
Размеры строк и столбцов в диспетчере компоновки grid
Отображение текста и изображений в составе компонента
Новые атрибуты, определяющие рельеф кнопок
Управление состоянием полей редактирования и окон списков
Работа с оконным диспетчером
Прочие изменения в составе Tk
Автоповтор
Поддержка прозрачных изображений
Выбор нескольких файлов с помощью tk_getOpenFile
Поддержка кнопок фиксированной ширины
Доступ к содержимому буфера обмена
Информация об использовании изображения
Новые события для диспетчеров окон
Управление текстовым курсором
Новая опция команды bell
Генерация Postscript-описаний для встроенных окон
Глава 59. Содержимое компакт-диска
Техническая подаержка
Предметный указатель