The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа

Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |  Properties  |  Signals

GtkToggleButton

GtkToggleButton Кнопки с сохраняемым состоянием

Краткое описание

#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);
}

Детали

GtkToggleButton

typedef 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);

Создаёт новую кнопку переключатель с текстовой меткой.

label :

Строка содержащая сообщение помещаемое в кнопку переключатель.

Возвращает:

новая кнопка переключатель.


gtk_toggle_button_new_with_mnemonic ()

GtkWidget*  gtk_toggle_button_new_with_mnemonic
                                            (const gchar *label);

Создаёт новый GtkToggleButton содержащий ярлык. Ярлык создаётся используя gtk_label_new_with_mnemonic(), поэтому подчёркивание в label указывает на мнемоник для кнопки.

label :

Текст кнопки, с подчеркиванием перед первым символом является мнемоническим символом

Возвращает:

новый GtkToggleButton


gtk_toggle_button_set_mode ()

void        gtk_toggle_button_set_mode      (GtkToggleButton *toggle_button,
                                             gboolean draw_indicator);

Устанавливает отображается ли кнопка как отдельный индикатор и метка. Вы можете вызвать эту функцию на кнопке переключателе или радио-кнопке с draw_indicator = FALSE, для создания кнопки похожей на нормальную.

Эта функция имеет эффект только в случае класса GtkCheckButton или GtkRadioButton которые наследуют из GtkToggleButton, не в случае GtkToggleButton непосредственно.

toggle_button :

GtkToggleButton

draw_indicator :

Если TRUE, рисует кнопку как разделённый индикатор и ярлык; если FALSE, рисует как нормальную кнопку


gtk_toggle_button_get_mode ()

gboolean    gtk_toggle_button_get_mode      (GtkToggleButton *toggle_button);

Определяет отображается ли кнопка как отдельный индикатор и метка. Смотрите gtk_toggle_button_set_mode().

toggle_button :

GtkToggleButton

Возвращает:

TRUE если кнопка переключатель рисуется как отдельный индикатор и ярлык.


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. Для приложений нет причин вызывать эту функцию.

toggle_button :

GtkToggleButton.


gtk_toggle_button_get_active ()

gboolean    gtk_toggle_button_get_active    (GtkToggleButton *toggle_button);

Запрашивает GtkToggleButton и возвращает текущеме состояние. Возвращает TRUE если кнопка переключатель нажата и FALSE если отжата.

toggle_button :

GtkToggleButton.

Возвращает:

gboolean значение.


gtk_toggle_button_set_active ()

void        gtk_toggle_button_set_active    (GtkToggleButton *toggle_button,
                                             gboolean is_active);

Устанавливает статус кнопки переключателя. Устанавливает TRUE если вы хотите нажатый GtkToggleButton, и FALSE отжатый. Это действие издаёт сигнал переключения.

toggle_button :

GtkToggleButton.

is_active :

TRUE или FALSE.


gtk_toggle_button_get_inconsistent ()

gboolean    gtk_toggle_button_get_inconsistent
                                            (GtkToggleButton *toggle_button);

Получает значение установленное gtk_toggle_button_set_inconsistent().

toggle_button :

GtkToggleButton

Возвращает:

TRUE если кнопка отображается в промежуточном состоянии, иначе FALSE


gtk_toggle_button_set_inconsistent ()

void        gtk_toggle_button_set_inconsistent
                                            (GtkToggleButton *toggle_button,
                                             gboolean setting);

Если пользователь выбрал диапазон элементов (такие как некоторый текст или ячейки таблицы), которые оказывают эффект на кнопку переключатель, а текущеме значение в диапазоне является неопределённым, вам может понадобиться отобразить переключатель "в промежуточном" состоянии. Эта функция включает "промежуточное" отображение. Обычно неопределённое состояние выключается, когда пользователь переключает кнопку. Это делается вручную, gtk_toggle_button_set_inconsistent() затрагивает только внешний вид, и не затрагивает семантику кнопки.

toggle_button :

GtkToggleButton

setting :

TRUE если состояние неопределённое

Детали свойств

Свойство "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.

togglebutton :

Объект получающий сигнал.

user_data :

Пользовательские данные устанавливаемые при подключении обработчика.

Смотрите также

GtkButton

Больше об основных кнопках.

GtkCheckButton

Другой способ представить опцию переключения.

GtkCheckMenuItem

GtkToggleButton как пункт меню.






Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру