Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |  Properties  |  Signals

GtkActionGroup

GtkActionGroup Группа действий

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

#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+ убеждается в правильности отображаемого значка рядом с пунктом меню.

Детали

GtkActionGroup

typedef struct _GtkActionGroup GtkActionGroup;

GtkActionGroup структура содержит только закрытые данные и не должна использоваться на прямую.


gtk_action_group_new ()

GtkActionGroup* gtk_action_group_new        (const gchar *name);

Создаёт новый GtkActionGroup объект. Имя группы действий используется для привязки keybindings к действиям.

name :

Имя группы действия.

Возвращает :

новый GtkActionGroup

Начиная с версии 2.4


gtk_action_group_get_name ()

const gchar* gtk_action_group_get_name      (GtkActionGroup *action_group);

Определяет имя группы действия.

action_group :

Группа действия

Возвращает :

Имя группы действия.

Начиная с версии 2.4


gtk_action_group_get_sensitive ()

gboolean    gtk_action_group_get_sensitive  (GtkActionGroup *action_group);

Возвращает TRUE если группа чувствительна. Составляющие действия могут только логически быть чувствительными (смотрите gtk_action_is_sensitive()) если они чувствительны (смотрите gtk_action_get_sensitive()) и их группа чувствительна.

action_group :

Группа действий

Возвращает :

TRUE если группа чувствительна.

Начиная с версии 2.4


gtk_action_group_set_sensitive ()

void gtk_action_group_set_sensitive (GtkActionGroup *action_group, gboolean sensitive);

Изменяет чувствительность action_group

action_group :

группа действий

sensitive :

состояние чувствительности

Начиная с версии 2.4


gtk_action_group_get_visible ()

gboolean    gtk_action_group_get_visible    (GtkActionGroup *action_group);

Возвращает TRUE если группа видима. Составляющие действия могут только логически быть видимыми (смотрите gtk_action_is_visible()) если они видимы (смотрите gtk_action_get_visible()) и их группа видима.

action_group :

группа действий

Возвращает :

TRUE если группа видима.

Начиная с версии 2.4


gtk_action_group_set_visible ()

void gtk_action_group_set_visible (GtkActionGroup *action_group, gboolean visible);

Изменяет видимость action_group.

action_group :

группа действий

visible :

Состояние видимости

Начиная с версии 2.4


gtk_action_group_get_action ()

GtkAction* gtk_action_group_get_action (GtkActionGroup *action_group, const gchar *action_name);

Находит действие в группе действий по имени.

action_group :

Группа действий

action_name :

Имя действия

Возвращает :

Действие, или NULL если нет действий для этого имени

Начиная с версии 2.4


gtk_action_group_list_actions ()

GList*      gtk_action_group_list_actions   (GtkActionGroup *action_group);

Список действий в группе действий.

action_group :

группа действий

Возвращает :

Список объектов действий в группе действий

Начиная с версии 2.4


gtk_action_group_add_action ()

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


gtk_action_group_add_action_with_accel ()

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


gtk_action_group_remove_action ()

void gtk_action_group_remove_action (GtkActionGroup *action_group, GtkAction *action);

Удаляет объект действия из группы действий.

action_group :

группа действий

action :

действие

Начиная с версии 2.4


GtkActionEntry

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;

Функция вызываемая при активации действия.


gtk_action_group_add_actions ()

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


gtk_action_group_add_actions_full ()

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


GtkToggleActionEntry

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;

Начальное состояние переключателя действия.


gtk_action_group_add_toggle_actions ()

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


gtk_action_group_add_toggle_actions_full ()

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


GtkRadioActionEntry

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().


gtk_action_group_add_radio_actions ()

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


gtk_action_group_add_radio_actions_full ()

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


gtk_action_group_set_translate_func ()

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 :

GtkActionGroup

func :

GtkTranslateFunc

data :

данные помещаемые в func и notify

notify :

GtkDestroyNotify функция вызываемая когда action_group разрушена и когда изменяется функция перевода

Начиная с версии 2.4


gtk_action_group_set_translation_domain ()

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 :

GtkActionGroup

domain :

Область перевода для использования в dgettext() вызове

Начиная с версии 2.4


gtk_action_group_translate_string ()

const gchar* gtk_action_group_translate_string (GtkActionGroup *action_group, const gchar *string);

Переводит строку используя специальную translate_func(). Это преимущественно для языковых привязок.

action_group :

GtkActionGroup

string :

строка

Возвращает :

переведённая string

Начиная с версии 2.6

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

Свойство "name"

  "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


Сигнал "disconnect-proxy"

void user_function (GtkActionGroup *action_group, GtkAction *action, GtkWidget *proxy, gpointer user_data) :

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

GtkUIManager обеспечивает сигнала и обеспечивает глобальное уведомление перед любым действием связанным с полномочием, которое наиболее удобно для использования.

action_group :

группа

action :

действие

proxy :

полномочие

user_data :

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

Начиная с версии 2.4


Сигнал "post-activate"

void user_function (GtkActionGroup *action_group, GtkAction *action, gpointer user_data) :

Сигнал post_activate издаётся после действия в action_group

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

action_group :

группа

action :

действие

user_data :

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

Начиная с версии 2.4


Сигнал "pre-activate"

void user_function (GtkActionGroup *action_group, GtkAction *action, gpointer user_data) :

Сигнал pre_activate издаётся перед действием в action_group

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

action_group :

группа

action :

действие

user_data :

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

Начиная с версии 2.4