GTK+ Reference Manual |
||||
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties | Signals |
GtkActionGroupGtkActionGroup Группа действий |
#include <gtk/gtk.h>
GtkActionGroup;
GtkActionGroup* gtk_action_group_new (const gchar *name);
const gchar* gtk_action_group_get_name (GtkActionGroup *action_group);
gboolean gtk_action_group_get_sensitive (GtkActionGroup *action_group);
void gtk_action_group_set_sensitive (GtkActionGroup *action_group,
gboolean sensitive);
gboolean gtk_action_group_get_visible (GtkActionGroup *action_group);
void gtk_action_group_set_visible (GtkActionGroup *action_group,
gboolean visible);
GtkAction* gtk_action_group_get_action (GtkActionGroup *action_group,
const gchar *action_name);
GList* gtk_action_group_list_actions (GtkActionGroup *action_group);
void gtk_action_group_add_action (GtkActionGroup *action_group,
GtkAction *action);
void gtk_action_group_add_action_with_accel
(GtkActionGroup *action_group,
GtkAction *action,
const gchar *accelerator);
void gtk_action_group_remove_action (GtkActionGroup *action_group,
GtkAction *action);
GtkActionEntry;
void gtk_action_group_add_actions (GtkActionGroup *action_group,
const GtkActionEntry *entries,
guint n_entries,
gpointer user_data);
void gtk_action_group_add_actions_full
(GtkActionGroup *action_group,
const GtkActionEntry *entries,
guint n_entries,
gpointer user_data,
GDestroyNotify destroy);
GtkToggleActionEntry;
void gtk_action_group_add_toggle_actions
(GtkActionGroup *action_group,
const GtkToggleActionEntry *entries,
guint n_entries,
gpointer user_data);
void gtk_action_group_add_toggle_actions_full
(GtkActionGroup *action_group,
const GtkToggleActionEntry *entries,
guint n_entries,
gpointer user_data,
GDestroyNotify destroy);
GtkRadioActionEntry;
void gtk_action_group_add_radio_actions
(GtkActionGroup *action_group,
const GtkRadioActionEntry *entries,
guint n_entries,
gint value,
GCallback on_change,
gpointer user_data);
void gtk_action_group_add_radio_actions_full
(GtkActionGroup *action_group,
const GtkRadioActionEntry *entries,
guint n_entries,
gint value,
GCallback on_change,
gpointer user_data,
GDestroyNotify destroy);
void gtk_action_group_set_translate_func
(GtkActionGroup *action_group,
GtkTranslateFunc func,
gpointer data,
GtkDestroyNotify notify);
void gtk_action_group_set_translation_domain
(GtkActionGroup *action_group,
const gchar *domain);
const gchar* gtk_action_group_translate_string
(GtkActionGroup *action_group,
const gchar *string);
GObject
+----GtkActionGroup
"name" gchararray : Read / Write / Construct Only
"sensitive" gboolean : Read / Write
"visible" gboolean : Read / Write
"connect-proxy"
void user_function (GtkActionGroup *action_group,
GtkAction *action,
GtkWidget *proxy,
gpointer user_data) :
"disconnect-proxy"
void user_function (GtkActionGroup *action_group,
GtkAction *action,
GtkWidget *proxy,
gpointer user_data) :
"post-activate"
void user_function (GtkActionGroup *action_group,
GtkAction *action,
gpointer user_data) :
"pre-activate"
void user_function (GtkActionGroup *action_group,
GtkAction *action,
gpointer user_data) :
Действия которые организованы в группы. Группа действий посуществу является картой имен для объектов GtkAction.
Все действия, которые имеет смысл использовать в специальном контексте, должны быть в одной группе. Множественные группы действий могут использоваться для специального интерфейса пользователя. Фактически, ожидается что большинство не тривиальных приложений будут использовать множественные группы. Например, в приложениях которые могут редактировать несколько документов, одна группа содержит глобальные действия (например выход(quit), о программе(about), новый(new)), а одна группа содержит действия которые действуют на этот документ (например сохранить(save), вырезать/копировать/вставить(cut/copy/paste), и т.д.). Меню каждого окна были бы созданы из двух групп действий.
Акселераторы обрабатываются картой акселераторов GTK+. Всем действиям назначены пути акселераторов (которые обычно имеют форму <Actions>/group-name/action-name) и комбинацию клавиш привязанную к этому пути. Все пункты меню и инструментальные пункты (toolitems) берут эти пути акселераторов. Код карты акселераторов GTK+ убеждается в правильности отображаемого значка рядом с пунктом меню.
typedef struct _GtkActionGroup GtkActionGroup;GtkActionGroup структура содержит только закрытые данные и не должна использоваться на прямую.
gtk_action_group_new ()
GtkActionGroup* gtk_action_group_new (const gchar *name);Создаёт новый GtkActionGroup объект. Имя группы действий используется для привязки keybindings к действиям.
name : |
Имя группы действия. |
Возвращает : |
новый GtkActionGroup |
Начиная с версии 2.4
const gchar* gtk_action_group_get_name (GtkActionGroup *action_group);Определяет имя группы действия.
action_group : |
Группа действия |
Возвращает : |
Имя группы действия. |
Начиная с версии 2.4
gboolean gtk_action_group_get_sensitive (GtkActionGroup *action_group);Возвращает TRUE если группа чувствительна. Составляющие действия могут только логически быть чувствительными (смотрите gtk_action_is_sensitive()) если они чувствительны (смотрите gtk_action_get_sensitive()) и их группа чувствительна.
action_group : |
Группа действий |
Возвращает : |
TRUE если группа чувствительна. |
Начиная с версии 2.4
void gtk_action_group_set_sensitive (GtkActionGroup *action_group,
gboolean sensitive);
Изменяет чувствительность action_group
action_group : |
группа действий |
sensitive : |
состояние чувствительности |
Начиная с версии 2.4
gboolean gtk_action_group_get_visible (GtkActionGroup *action_group);Возвращает TRUE если группа видима. Составляющие действия могут только логически быть видимыми (смотрите gtk_action_is_visible()) если они видимы (смотрите gtk_action_get_visible()) и их группа видима.
action_group : |
группа действий |
Возвращает : |
TRUE если группа видима. |
Начиная с версии 2.4
void gtk_action_group_set_visible (GtkActionGroup *action_group,
gboolean visible);
Изменяет видимость action_group.
action_group : |
группа действий |
visible : |
Состояние видимости |
Начиная с версии 2.4
GtkAction* gtk_action_group_get_action (GtkActionGroup *action_group,
const gchar *action_name);
Находит действие в группе действий по имени.
action_group : |
Группа действий |
action_name : |
Имя действия |
Возвращает : |
Действие, или NULL если нет действий для этого имени |
Начиная с версии 2.4
GList* gtk_action_group_list_actions (GtkActionGroup *action_group);Список действий в группе действий.
action_group : |
группа действий |
Возвращает : |
Список объектов действий в группе действий |
Начиная с версии 2.4
void gtk_action_group_add_action (GtkActionGroup *action_group,
GtkAction *action);
Добавляет объект действия в группу действий. Помните эта функция не устанавливает путь акселератора действия, что может вызвать проблемы если пользователь попытается модифицировать акселератор пункта меню ассоциированного с действием. Поэтому вы должны установить пути акселератора самостоятельно с помощью gtk_action_set_accel_path(), или использовать gtk_action_group_add_action_with_accel (..., NULL).
action_group : |
группа действий |
action : |
действие |
Начиная с версии 2.4
void gtk_action_group_add_action_with_accel
(GtkActionGroup *action_group,
GtkAction *action,
const gchar *accelerator);
Добавляет объект действия к группе действий и устанавливает акселератор.
Если accelerator равен NULL, пытается использовать акселератор ассоциированный с действием имеющим stock_id.
Путь акселератора соответствует <Actions>/group-name/action-name.
action_group : |
группа действий |
action : |
Добавляемое действие |
accelerator : |
Акселератор для действия, в формате понятном для gtk_accelerator_parse(), или "" если нет акселератора, или NULL для использования готового акселератора |
Начиная с версии 2.4
void gtk_action_group_remove_action (GtkActionGroup *action_group,
GtkAction *action);
Удаляет объект действия из группы действий.
action_group : |
группа действий |
action : |
действие |
Начиная с версии 2.4
typedef struct {
const gchar *name;
const gchar *stock_id;
const gchar *label;
const gchar *accelerator;
const gchar *tooltip;
GCallback callback;
} GtkActionEntry;
GtkActionEntry структура используется для создания действий с помощью gtk_action_group_add_actions().
const gchar *name; |
Имя действия |
const gchar *stock_id; |
ID готового действия. |
const gchar *label; |
Ярлык для действия. Это поле должно обычно маркироваться для перевода, смотрите gtk_action_group_set_translation_domain(). |
const gchar *accelerator; |
Акселератор для действия, в формате понятном для gtk_accelerator_parse(). |
const gchar *tooltip; |
Подсказка для действия. Это поле должно обычно маркироваться для перевода, смотрите gtk_action_group_set_translation_domain(). |
GCallback callback; |
Функция вызываемая при активации действия. |
void gtk_action_group_add_actions (GtkActionGroup *action_group,
const GtkActionEntry *entries,
guint n_entries,
gpointer user_data);
Это удобная функция для создания нескольких действий и добавления их к группе действий.
Сигнал действий "activate" подключается к callback-функциям и их путям акселераторов установленных как <Actions>/group-name/action-name.
action_group : |
группа действий |
entries : |
массив описаний действий |
n_entries : |
число входов |
user_data : |
данные помещаемые в callbacks-функции |
Начиная с версии 2.4
void gtk_action_group_add_actions_full
(GtkActionGroup *action_group,
const GtkActionEntry *entries,
guint n_entries,
gpointer user_data,
GDestroyNotify destroy);
Это вариант gtk_action_group_add_actions() с добавленным GDestroyNotify для user_data.
action_group : |
группа действий |
entries : |
массив описаний действий |
n_entries : |
число входов |
user_data : |
данные помещаемые в callbacks-функции |
destroy : |
Callback-функция разрушающего уведомления для user_data |
Начиная с версии 2.4
typedef struct {
const gchar *name;
const gchar *stock_id;
const gchar *label;
const gchar *accelerator;
const gchar *tooltip;
GCallback callback;
gboolean is_active;
} GtkToggleActionEntry;
GtkToggleActionEntry структура используется для создания переключателей действий с помощью gtk_action_group_add_toggle_actions().
const gchar *name; |
Имя действия |
const gchar *stock_id; |
ID готового действия. |
const gchar *label; |
Ярлык для действия. Это поле должно обычно маркироваться для перевода, смотрите gtk_action_group_set_translation_domain(). |
const gchar *accelerator; |
Акселератор для действия, в формате понятном для gtk_accelerator_parse(). |
const gchar *tooltip; |
Подсказка для действия. Это поле должно обычно маркироваться для перевода, смотрите gtk_action_group_set_translation_domain(). |
GCallback callback; |
Функция вызываемая при активации действия. |
gboolean is_active; |
Начальное состояние переключателя действия. |
void gtk_action_group_add_toggle_actions
(GtkActionGroup *action_group,
const GtkToggleActionEntry *entries,
guint n_entries,
gpointer user_data);
Это удобная функция для создания переключателей действий и добавления их к группе действий.
Сигнал действия "activate" подключаемый к callback-функциям и их путям акселератора установленных как <Actions>/group-name/action-name.
action_group : |
группа действий |
entries : |
Массив описаний переключателей действий |
n_entries : |
число входов |
user_data : |
данные помещаемые в callback-функции |
Начиная с версии 2.4
void gtk_action_group_add_toggle_actions_full
(GtkActionGroup *action_group,
const GtkToggleActionEntry *entries,
guint n_entries,
gpointer user_data,
GDestroyNotify destroy);
Это вариант gtk_action_group_add_toggle_actions() с добавленным GDestroyNotify для user_data.
action_group : |
группа действий |
entries : |
Массив описаний переключателей действий |
n_entries : |
число входов |
user_data : |
данные помещаемые в callbacks-функции |
destroy : |
callback-функция уведомления разрушения для user_data |
Начиная с версии 2.4
typedef struct {
const gchar *name;
const gchar *stock_id;
const gchar *label;
const gchar *accelerator;
const gchar *tooltip;
gint value;
} GtkRadioActionEntry;
GtkRadioActionEntry структура используемая для создания групп радио действий gtk_action_group_add_radio_actions().
const gchar *name; |
Имя действия |
const gchar *stock_id; |
ID готового действия. |
const gchar *label; |
Ярлык для действия. Это поле должно обычно маркироваться для перевода, смотрите gtk_action_group_set_translation_domain(). |
const gchar *accelerator; |
Акселератор для действия, в формате понятном для gtk_accelerator_parse(). |
const gchar *tooltip; |
Подсказка для действия. Это поле должно обычно маркироваться для перевода, смотрите gtk_action_group_set_translation_domain(). |
gint value; |
Значение установленное для радио действия. Смотрите gtk_radio_action_get_current_value(). |
void gtk_action_group_add_radio_actions
(GtkActionGroup *action_group,
const GtkRadioActionEntry *entries,
guint n_entries,
gint value,
GCallback on_change,
gpointer user_data);
Это удобная функция для создания группы радио действий и добавления их к группе действий.
Сигнал "changed" первого радио действия подключается к on_change callback-функции и путям акселератора действий установленных как <Actions>/group-name/action-name.
action_group : |
группа действий |
entries : |
массив описаний радио действий |
n_entries : |
число входов |
value : |
первое активизируемое действие, или -1 если нет действия для активизации |
on_change : |
callback-функция подключаемая к изменяющему сигналу |
user_data : |
данные помещаемые в callbacks-функции |
Начиная с версии 2.4
void gtk_action_group_add_radio_actions_full
(GtkActionGroup *action_group,
const GtkRadioActionEntry *entries,
guint n_entries,
gint value,
GCallback on_change,
gpointer user_data,
GDestroyNotify destroy);
This variant of gtk_action_group_add_radio_actions() adds a GDestroyNotify callback for user_data.
action_group : |
группа действий |
entries : |
массив описаний радио действий |
n_entries : |
число входов |
value : |
первое активизируемое действие, или -1 если нет действия для активизации |
on_change : |
callback-функция подключаемая к изменяющему сигналу |
user_data : |
данные помещаемые в callbacks-функции |
destroy : |
функция разрушающего уведомления для user_data |
Начиная с версии 2.4
void gtk_action_group_set_translate_func
(GtkActionGroup *action_group,
GtkTranslateFunc func,
gpointer data,
GtkDestroyNotify notify);
Устанавливает функцию для перевода label и tooltip GtkActionGroupEntrys добавленных с помощью gtk_action_group_add_actions().
Если вы выбрали gettext(), достаточно установить область перевода с помощью gtk_action_group_set_translation_domain().
action_group : |
|
func : |
|
data : |
данные помещаемые в func и notify |
notify : |
GtkDestroyNotify функция вызываемая когда action_group разрушена и когда изменяется функция перевода |
Начиная с версии 2.4
void gtk_action_group_set_translation_domain
(GtkActionGroup *action_group,
const gchar *domain);
Устанавливает область перевода и использует dgettext() для перевода label и tooltip GtkActionEntrys добавленных с помощью gtk_action_group_add_actions().
Если вы не используете gettext() для локализации, смотрите gtk_action_group_set_translate_func().
action_group : |
|
domain : |
Область перевода для использования в dgettext() вызове |
Начиная с версии 2.4
const gchar* gtk_action_group_translate_string
(GtkActionGroup *action_group,
const gchar *string);
Переводит строку используя специальную translate_func(). Это преимущественно для языковых привязок.
action_group : |
|
string : |
строка |
Возвращает : |
переведённая string |
Начиная с версии 2.6
"name" gchararray : Read / Write / Construct OnlyИмя для группы действий.
Значение по умолчанию: NULL
Свойство "sensitive"
"sensitive" gboolean : Read / WriteВключена ли группа действий.
Значение по умолчанию: TRUE
Свойство "visible"
"visible" gboolean : Read / WriteВидима ли группа действий.
Значение по умолчанию: TRUE
Детали сигналов
Сигнал "connect-proxy"
void user_function (GtkActionGroup *action_group, GtkAction *action, GtkWidget *proxy, gpointer user_data) :
Сигнал connect_proxy издаётся после подключения полномочий к действию в группе. Помните что эти полномочия возможно были прежде связаны с другим действием.
Это используется для простых настроек, для которых класс действий был бы слишком неуклюжим, например отображение подсказок для пунктов меню и инструментальных пунктов.
GtkUIManager обеспечивает сигнала и обеспечивает глобальное уведомление перед любым действием связанным с полномочием, которое наиболее удобно для использования.
action_group : |
группа |
action : |
действие |
proxy : |
полномочие |
user_data : |
пользовательские данные подключаемые при обработке сигнала. |
Начиная с версии 2.4
void user_function (GtkActionGroup *action_group,
GtkAction *action,
GtkWidget *proxy,
gpointer user_data) :
Сигнал disconnect_proxy издаётся после отключения полномочия от действия в группе.
GtkUIManager обеспечивает сигнала и обеспечивает глобальное уведомление перед любым действием связанным с полномочием, которое наиболее удобно для использования.
action_group : |
группа |
action : |
действие |
proxy : |
полномочие |
user_data : |
пользовательские данные подключаемые при обработке сигнала. |
Начиная с версии 2.4
void user_function (GtkActionGroup *action_group,
GtkAction *action,
gpointer user_data) :
Сигнал post_activate издаётся после действия в action_group
Предназначено для GtkUIManager для сигнала полномочия и обеспечения глобального уведомления непосредственно после активизации любого действия.
action_group : |
группа |
action : |
действие |
user_data : |
пользовательские данные подключаемые при обработке сигнала. |
Начиная с версии 2.4
void user_function (GtkActionGroup *action_group,
GtkAction *action,
gpointer user_data) :
Сигнал pre_activate издаётся перед действием в action_group
Предназначено для GtkUIManager для сигнала полномочия и обеспечения глобального уведомления непосредственно перед активизацией любого действия.
action_group : |
группа |
action : |
действие |
user_data : |
пользовательские данные подключаемые при обработке сигнала. |
Начиная с версии 2.4