краткое описание#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); } деталиgtktogglebuttontypedef struct _gtktogglebutton gtktogglebutton; структура gtktogglebutton содержит закрытые данные, которыми должны манипулировать функции приведённые ниже. gtk_toggle_button_new ()gtkwidget* gtk_toggle_button_new (void); создаёт новую кнопку переключатель. виджет должен быть упакован в кнопку, как в gtk_button_new().
gtk_toggle_button_new_with_label ()gtkwidget* gtk_toggle_button_new_with_label (const gchar *label); создаёт новую кнопку переключатель с текстовой меткой.
gtk_toggle_button_new_with_mnemonic ()gtkwidget* gtk_toggle_button_new_with_mnemonic (const gchar *label); создаёт новый gtktogglebutton содержащий ярлык. ярлык создаётся используя gtk_label_new_with_mnemonic(), поэтому подчёркивание в label указывает на мнемоник для кнопки.
gtk_toggle_button_set_mode ()void gtk_toggle_button_set_mode (gtktogglebutton *toggle_button, gboolean draw_indicator); устанавливает отображается ли кнопка как отдельный индикатор и метка. вы можете вызвать эту функцию на кнопке переключателе или радио-кнопке с draw_indicator = false, для создания кнопки похожей на нормальную. эта функция имеет эффект только в случае класса gtkcheckbutton или gtkradiobutton которые наследуют из gtktogglebutton, не в случае gtktogglebutton непосредственно.
gtk_toggle_button_get_mode ()gboolean gtk_toggle_button_get_mode (gtktogglebutton *toggle_button); определяет отображается ли кнопка как отдельный индикатор и метка. смотрите gtk_toggle_button_set_mode().
gtk_toggle_button_set_state#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. для приложений нет причин вызывать эту функцию.
gtk_toggle_button_get_active ()gboolean gtk_toggle_button_get_active (gtktogglebutton *toggle_button); запрашивает gtktogglebutton и возвращает текущеме состояние. возвращает true если кнопка переключатель нажата и false если отжата.
gtk_toggle_button_set_active ()void gtk_toggle_button_set_active (gtktogglebutton *toggle_button, gboolean is_active); устанавливает статус кнопки переключателя. устанавливает true если вы хотите нажатый gtktogglebutton, и false отжатый. это действие издаёт сигнал переключения.
gtk_toggle_button_get_inconsistent ()gboolean gtk_toggle_button_get_inconsistent (gtktogglebutton *toggle_button); получает значение установленное gtk_toggle_button_set_inconsistent().
gtk_toggle_button_set_inconsistent ()void gtk_toggle_button_set_inconsistent (gtktogglebutton *toggle_button, gboolean setting); если пользователь выбрал диапазон элементов (такие как некоторый текст или ячейки таблицы), которые оказывают эффект на кнопку переключатель, а текущеме значение в диапазоне является неопределённым, вам может понадобиться отобразить переключатель "в промежуточном" состоянии. эта функция включает "промежуточное" отображение. обычно неопределённое состояние выключается, когда пользователь переключает кнопку. это делается вручную, gtk_toggle_button_set_inconsistent() затрагивает только внешний вид, и не затрагивает семантику кнопки.
детали свойствсвойство "active""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.
смотрите также
|