После этого в первую ячейку таблицы добавьте кнопку и установите ее свойства следующим образом:
♦ Вкладка Эл. управления
• Ширина окантовки: 0
• Метка: ON
♦ Вкладка Общие
• Ширина: 70
• Высота: 70
Если вы забыли (или не знаете), что означает то или иное свойство виджита, подведите указатель мыши к метке поля свойства, и рядом с ним отобразится подсказка. Если же вам трудно установить маску для событий, нажмите кнопку «…» (рис. 24.5) рядом с полем выбора события, и вы увидите описание масок событий.
Рис. 24.5
. Вкладка Общие для кнопкиСкопируйте получившуюся кнопку в следующую ячейку (Ctrl+C, Ctrl+V.). Для новой кнопки установите свойство Метка: СЕ. Проверить, что находится в буфере обмена, можно с помощью команды главного меню Glade: Вид, Буфер обмена.
Точно так же создайте еще 16 кнопок и разместите их так, как показано на рисунке 24.6.
Рис. 24.6
. КалькуляторСейчас установим функции-обработчики для наших кнопок. Выделите кнопку ON и перейдите в окно свойств на вкладку Сигналы.
Рис. 24.7
. СигналыВыберите сигнал clicked и нажмите OK
. В поле обработчика введите имя функции-обработчика, например, on_button_ciick. Можно выбрать одну из стандартных функций, например, gtk_main_quit(), но не для этой кнопки — это ведь обработчик включения калькулятора, поэтому код для него мы должны будем писать самостоятельно. Теперь нажмите кнопку Добавить.Аналогично создайте обработчики для остальных функций. Советую давать функциям понятные имена, например, on_button_N_click, где N — число от 0 до 9, или on_plus_click.
Вот и все, интерфейс калькулятора построен.
24.3. Работа с проектом
Прежде всего нужно сохранить наш проект. Нажмите кнопку Сохранить
в главном окне Glade. Перед сохранением Glade предложит установить свойства проекта:♦ Вкладка «Общие»
• Каталог проекта /home/ваше_имя/Проекты/Проект — сразу же измените Проекты на Projects и Проект на имя нашего проекта — calc. Использовать написанные кириллицей названия не запрещается, но и не рекомендуется.
• Название проекта: Calc.
• Название программы: calc — так будет назван исполнимый файл.
• Файл проекта: calc.glade.
• Каталог исходного кода: src (~/Projects/Calc/src).
• Каталог картинок: pixmap.
• Язык: С.
• Включить поддержку Gnome: Да.
♦ Вкладка «Параметры C»
• Все оставить по умолчанию.
В результате в каталоге ~/Projects/Calc будет создан файл проекта calc.glade. Этот файл полностью описывает наш проект на языке XML. Фрагмент этого файла приведен в листинге 25.1 — просто для общего развития.
Листинг 25.1. Фрагмент файла проекта calc.glade
window1
...
...
...
Но кроме этого файла в каталоге Calc ничего нет. А где же исходный код? А где картинки? Чтобы Glade сгенерировала исходный код, нажмите кнопку Построить
в главном окне Glade. В результате в каталоге calc будет создана структура подкаталогов, показанная на рис. 24.8.Рис. 24.8
. Структура каталогов проектаВ каталоге macros
po
предназначен только для вас — в него вы будете вносить сведения об изменениях в проекте. Каталог src
содержит исходный код проекта.О каталоге src
♦ interface.*, support.* — эти файлы сгенерированы Glade, и вам не нужно их редактировать;
♦ callback.* — функции-обработчики. Автоматически сгенерированные функции первоначально не делают ничего, это только заготовки. Чтобы ваша программа что-нибудь делала, вам нужно отредактировать файл callback.c;
♦ make.c — вы можете редактировать этот файл, если вам это нужно.
Рассмотрим файл callback.c — его нужно редактировать в первую очередь. Glade создала для вас заготовки функций-обработчиков следующего вида:
Листинг 25.2. Фрагмент файла callback.c
#ifdef HAVE_CONFIG_H
# include
#endif
#include
#include "callbacks.h"
#include "interface.h"
#include "support.h"
void
on_button_clicked (GtkButton *button,
gpointer user_data) {
}
void
ce_button_clicked (GtkButton *button,
gpointer user_data) {
}
...
void
on_button9_clicked (GtkButton *button,
gpointer user_data) {
}
Вписав в эти заготовки код, выполняющий нужные вам действия, можно попытаться собрать программу. Для этого перейдите в каталог calc
24.4. Создание меню