краткое описание#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+ убеждается в правильности отображаемого значка рядом с пунктом меню. деталиgtkactiongrouptypedef struct _gtkactiongroup gtkactiongroup; gtkactiongroup структура содержит только закрытые данные и не должна использоваться на прямую. gtk_action_group_new ()gtkactiongroup* gtk_action_group_new (const gchar *name); создаёт новый gtkactiongroup объект. имя группы действий используется для привязки keybindings к действиям.
начиная с версии 2.4 gtk_action_group_get_name ()const gchar* gtk_action_group_get_name (gtkactiongroup *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()) и их группа чувствительна.
начиная с версии 2.4 gtk_action_group_set_sensitive ()void gtk_action_group_set_sensitive (gtkactiongroup *action_group, gboolean sensitive); изменяет чувствительность action_group
начиная с версии 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()) и их группа видима.
начиная с версии 2.4 gtk_action_group_set_visible ()void gtk_action_group_set_visible (gtkactiongroup *action_group, gboolean visible); изменяет видимость action_group.
начиная с версии 2.4 gtk_action_group_get_action ()gtkaction* gtk_action_group_get_action (gtkactiongroup *action_group, const gchar *action_name); находит действие в группе действий по имени.
начиная с версии 2.4 gtk_action_group_list_actions ()glist* gtk_action_group_list_actions (gtkactiongroup *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).
начиная с версии 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.
начиная с версии 2.4 gtk_action_group_remove_action ()void gtk_action_group_remove_action (gtkactiongroup *action_group, gtkaction *action); удаляет объект действия из группы действий.
начиная с версии 2.4 gtkactionentrytypedef 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().
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.
начиная с версии 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.
начиная с версии 2.4 gtktoggleactionentrytypedef 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().
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.
начиная с версии 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.
начиная с версии 2.4 gtkradioactionentrytypedef 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().
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.
начиная с версии 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.
начиная с версии 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().
начиная с версии 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().
начиная с версии 2.4 gtk_action_group_translate_string ()const gchar* gtk_action_group_translate_string (gtkactiongroup *action_group, const gchar *string); переводит строку используя специальную translate_func(). это преимущественно для языковых привязок.
начиная с версии 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 обеспечивает сигнала и обеспечивает глобальное уведомление перед любым действием связанным с полномочием, которое наиболее удобно для использования.
начиная с версии 2.4 сигнал "disconnect-proxy"void user_function (gtkactiongroup *action_group, gtkaction *action, gtkwidget *proxy, gpointer user_data) : сигнал disconnect_proxy издаётся после отключения полномочия от действия в группе. gtkuimanager обеспечивает сигнала и обеспечивает глобальное уведомление перед любым действием связанным с полномочием, которое наиболее удобно для использования.
начиная с версии 2.4 сигнал "post-activate"void user_function (gtkactiongroup *action_group, gtkaction *action, gpointer user_data) : сигнал post_activate издаётся после действия в action_group предназначено для gtkuimanager для сигнала полномочия и обеспечения глобального уведомления непосредственно после активизации любого действия.
начиная с версии 2.4 сигнал "pre-activate"void user_function (gtkactiongroup *action_group, gtkaction *action, gpointer user_data) : сигнал pre_activate издаётся перед действием в action_group предназначено для gtkuimanager для сигнала полномочия и обеспечения глобального уведомления непосредственно перед активизацией любого действия.
начиная с версии 2.4 |