GTK+ Reference Manual |
||||
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties | Signals |
GtkToggleButtonGtkToggleButton Кнопки с сохраняемым состоянием |
#include <gtk/gtk.h>
GtkToggleButton;
GtkWidget* gtk_toggle_button_new (void);
GtkWidget* gtk_toggle_button_new_with_label
(const gchar *label);
GtkWidget* gtk_toggle_button_new_with_mnemonic
(const gchar *label);
void gtk_toggle_button_set_mode (GtkToggleButton *toggle_button,
gboolean draw_indicator);
gboolean gtk_toggle_button_get_mode (GtkToggleButton *toggle_button);
#define gtk_toggle_button_set_state
void gtk_toggle_button_toggled (GtkToggleButton *toggle_button);
gboolean gtk_toggle_button_get_active (GtkToggleButton *toggle_button);
void gtk_toggle_button_set_active (GtkToggleButton *toggle_button,
gboolean is_active);
gboolean gtk_toggle_button_get_inconsistent
(GtkToggleButton *toggle_button);
void gtk_toggle_button_set_inconsistent
(GtkToggleButton *toggle_button,
gboolean setting);
GObject
+----GInitiallyUnowned
+----GtkObject
+----GtkWidget
+----GtkContainer
+----GtkBin
+----GtkButton
+----GtkToggleButton
+----GtkCheckButton
GtkToggleButton осуществляет AtkImplementorIface.
"active" gboolean : Read / Write
"draw-indicator" gboolean : Read / Write
"inconsistent" gboolean : Read / Write
"toggled" void user_function (GtkToggleButton *togglebutton,
gpointer user_data) : Run first
GtkToggleButton - это GtkButton с запоминанием состояния при нажатии. Когда происходит нажатие, кнопка переключатель остаётся либо в нажатом, либо в отжатом состоянии.
Кнопка переключатель создаётся вызовом любой из двух функций - gtk_toggle_button_new() или gtk_toggle_button_new_with_label(). Если вы используете первую, уместно упаковать в кнопку переключатель виджет (такой как GtkLabel и/или GtkPixmap). (Смотрите GtkButton для большей информации).
Состояние GtkToggleButton может быть специально установлено используя gtk_toggle_button_set_active(), а определено используя gtk_toggle_button_get_active().
Для простого переключения состояний кнопки переключателя используется gtk_toggle_button_toggled.
Пример 2. Создание двух виджетов GtkToggleButton.
void make_toggles (void) {
GtkWidget *dialog, *toggle1, *toggle2;
dialog = gtk_dialog_new ();
toggle1 = gtk_toggle_button_new_with_label ("Привет, я кнопка переключатель.");
/* Делаем эту кнопку переключатель невидимой */
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (toggle1), TRUE);
g_signal_connect (toggle1, "toggled",
G_CALLBACK (output_state), NULL);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area),
toggle1, FALSE, FALSE, 2);
toggle2 = gtk_toggle_button_new_with_label ("Hi, i'm another toggle button.");
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (toggle2), FALSE);
g_signal_connect (toggle2, "toggled",
G_CALLBACK (output_state), NULL);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area),
toggle2, FALSE, FALSE, 2);
gtk_widget_show_all (dialog);
}
typedef struct _GtkToggleButton GtkToggleButton;Структура GtkToggleButton содержит закрытые данные, которыми должны манипулировать функции приведённые ниже.
gtk_toggle_button_new ()
GtkWidget* gtk_toggle_button_new (void);Создаёт новую кнопку переключатель. Виджет должен быть упакован в кнопку, как в gtk_button_new().
Возвращает: |
новая кнопка переключатель. |
GtkWidget* gtk_toggle_button_new_with_label
(const gchar *label);
Создаёт новую кнопку переключатель с текстовой меткой.
label : |
Строка содержащая сообщение помещаемое в кнопку переключатель. |
Возвращает: |
новая кнопка переключатель. |
GtkWidget* gtk_toggle_button_new_with_mnemonic
(const gchar *label);
Создаёт новый GtkToggleButton содержащий ярлык. Ярлык создаётся используя gtk_label_new_with_mnemonic(), поэтому подчёркивание в label указывает на мнемоник для кнопки.
label : |
Текст кнопки, с подчеркиванием перед первым символом является мнемоническим символом |
Возвращает: |
новый GtkToggleButton |
void gtk_toggle_button_set_mode (GtkToggleButton *toggle_button,
gboolean draw_indicator);
Устанавливает отображается ли кнопка как отдельный индикатор и метка. Вы можете вызвать эту функцию на кнопке переключателе или радио-кнопке с draw_indicator = FALSE, для создания кнопки похожей на нормальную.
Эта функция имеет эффект только в случае класса GtkCheckButton или GtkRadioButton которые наследуют из GtkToggleButton, не в случае GtkToggleButton непосредственно.
toggle_button : |
|
draw_indicator : |
Если TRUE, рисует кнопку как разделённый индикатор и ярлык; если FALSE, рисует как нормальную кнопку |
gboolean gtk_toggle_button_get_mode (GtkToggleButton *toggle_button);Определяет отображается ли кнопка как отдельный индикатор и метка. Смотрите gtk_toggle_button_set_mode().
toggle_button : |
|
Возвращает: |
TRUE если кнопка переключатель рисуется как отдельный индикатор и ярлык. |
#define gtk_toggle_button_set_state gtk_toggle_button_set_activeВнимание
gtk_toggle_button_set_state устарел и не нужно его использовать во вновь создаваемом коде.
Это устаревший макрос и поддерживается только поп причине совместимости.
gtk_toggle_button_toggled ()
void gtk_toggle_button_toggled (GtkToggleButton *toggle_button);Издаёт сигнал toggled на GtkToggleButton. Для приложений нет причин вызывать эту функцию.
toggle_button : |
gboolean gtk_toggle_button_get_active (GtkToggleButton *toggle_button);Запрашивает GtkToggleButton и возвращает текущеме состояние. Возвращает TRUE если кнопка переключатель нажата и FALSE если отжата.
toggle_button : |
|
Возвращает: |
gboolean значение. |
void gtk_toggle_button_set_active (GtkToggleButton *toggle_button,
gboolean is_active);
Устанавливает статус кнопки переключателя. Устанавливает TRUE если вы хотите нажатый GtkToggleButton, и FALSE отжатый. Это действие издаёт сигнал переключения.
toggle_button : |
|
is_active : |
TRUE или FALSE. |
gboolean gtk_toggle_button_get_inconsistent
(GtkToggleButton *toggle_button);
Получает значение установленное gtk_toggle_button_set_inconsistent().
toggle_button : |
|
Возвращает: |
TRUE если кнопка отображается в промежуточном состоянии, иначе FALSE |
void gtk_toggle_button_set_inconsistent
(GtkToggleButton *toggle_button,
gboolean setting);
Если пользователь выбрал диапазон элементов (такие как некоторый текст или ячейки таблицы), которые оказывают эффект на кнопку переключатель, а текущеме значение в диапазоне является неопределённым, вам может понадобиться отобразить переключатель "в промежуточном" состоянии. Эта функция включает "промежуточное" отображение. Обычно неопределённое состояние выключается, когда пользователь переключает кнопку. Это делается вручную, gtk_toggle_button_set_inconsistent() затрагивает только внешний вид, и не затрагивает семантику кнопки.
toggle_button : |
|
setting : |
TRUE если состояние неопределённое |
"active" gboolean : Read / WriteЕсли кнопка переключатель должна быть нажата или нет.
Значение по умолчанию: FALSE
Свойство "draw-indicator"
"draw-indicator" gboolean : Read / WriteЕсли часть кнопки переключателя отображена.
Значение по умолчанию: FALSE
Свойство "inconsistent"
"inconsistent" gboolean : Read / WriteЕсли кнопка переключатель находится "в промежуточном" состоянии.
Значение по умолчанию: FALSE
Детали сигналов
Сигнал "toggled"
void user_function (GtkToggleButton *togglebutton, gpointer user_data) : Run first
Должен быть подключен если вы выполняете действия изменяющие состояние GtkToggleButton's.
togglebutton : |
Объект получающий сигнал. |
user_data : |
Пользовательские данные устанавливаемые при подключении обработчика. |
Больше об основных кнопках. |
|
Другой способ представить опцию переключения. |
|
GtkToggleButton как пункт меню. |