Аллен Питер В.
Шрифт:
Как видно из рисунка, нам понадобятся три поля ввода, три надписи и две кнопки. Поля ввода мы будем хранить в массиве:
Создать поле для ввода можно с помощью функции gtk_entry_new:
После создания поля необходимо вызвать функцию gtk_entry_set_editable, иначе пользователь ничего не сможет ввести в это поле.
Ну и, само собой разумеется, нужно установить реакцию на нажатие клавиши Enter — сигнал activate:
Весьма желательно на этапе отладки программы видеть введенную информацию на консоли. Для этого нужно написать такую функцию enter_callback, которая выводила бы содержимое поля на консоль. Получить введенную пользователем информацию очень легко:
Реакция на нажатие кнопки OK будет следующей:
Если ваше окно должно содержать много надписей, то я рекомендую вам поступать так: объявить всего одну переменную, затем создать надпись, поместить ее в контейнер, затем опять создать надпись с использованием этой же переменной, поместить ее в контейнер и т.д. Примерно так:
Листинг 23.6 содержит полный код конфигуратора Resolver.
Листинг 23.6. Файл resolver.c