Spec-Zone.ru › GTK 3.22

GtkActionGroup

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

Функции

GtkActionGroup * gtk_action_group_new ()
const gchar * gtk_action_group_get_name ()
gboolean gtk_action_group_get_sensitive ()
void gtk_action_group_set_sensitive ()
gboolean gtk_action_group_get_visible ()
void gtk_action_group_set_visible ()
GtkAccelGroup * gtk_action_group_get_accel_group ()
void gtk_action_group_set_accel_group ()
GtkAction * gtk_action_group_get_action ()
GList * gtk_action_group_list_actions ()
void gtk_action_group_add_action ()
void gtk_action_group_add_action_with_accel ()
void gtk_action_group_remove_action ()
void gtk_action_group_add_actions ()

Свойства

GtkAccelGroup * accel-group Чтение/Запись
gchar * name Чтение/Запись/Только для создания
gboolean sensitive Чтение/Запись
gboolean visible Чтение/Запись

Сигналы

void connect-proxy
void disconnect-proxy
void post-activate
void pre-activate

Типы и значения

struct GtkActionGroup
struct GtkActionGroupClass
struct GtkActionEntry
struct GtkToggleActionEntry
struct GtkRadioActionEntry

Иерархия объектов

    GObject
    ╰── GtkActionGroup

Реализованные интерфейсы

GtkActionGroup реализует GtkBuildable.

Включаемые файлы

#include <gtk/gtk.h>

Описание

Действия организованы в группы. Группа действий по сути является отображением имён на объекты GtkAction.

Все действия, которые могут быть полезны в данном контексте, должны находиться в одной группе. Для одного пользовательского интерфейса могут использоваться несколько групп действий. Фактически, ожидается, что большинство нетривиальных приложений будут использовать несколько групп. Например, в приложении, которое может редактировать несколько документов, одна группа может содержать глобальные действия (например, выход, о программе, новый), а другая группа для каждого документа — действия, которые влияют на этот документ (например, сохранение, вырезка/копирование/вставка и т. д.). Меню каждого окна будет создаваться на основе комбинации двух групп действий.

Акселераторы

Обработка акселераторов осуществляется с помощью карты акселераторов GTK+. Всем действиям присваивается путь акселератора (который обычно имеет вид <Actions>/group-name/action-name) и этому пути акселератора сопоставляется сочетание клавиш. Все пункты меню и элементы панели инструментов используют этот путь акселератора. Код карты акселераторов GTK+ гарантирует, что корректное сочетание клавиш отображается рядом с пунктом меню.

GtkActionGroup как GtkBuildable

Реализация GtkActionGroup интерфейса GtkBuildable принимает объекты GtkAction в качестве элементов <child> в определениях пользовательского интерфейса.

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

Реализация GtkActionGroup интерфейса GtkBuildable поддерживает пользовательский элемент <accelerator>, у которого есть атрибуты с именами «key» и «modifiers», позволяющие указать акселераторы. Это аналогично элементу <accelerator> для GtkWidget, основное отличие заключается в том, что он не позволяет указать сигнал.

Фрагмент определения UI для GtkDialog

<object class="GtkActionGroup" id="actiongroup">
  <child>
      <object class="GtkAction" id="About">
          <property name="name">About</property>
          <property name="stock_id">gtk-about</property>
          <signal handler="about_activate" name="activate"/>
      </object>
      <accelerator key="F1" modifiers="GDK_CONTROL_MASK | GDK_SHIFT_MASK"/>
  </child>
</object>

Функции

gtk_action_group_new ()

GtkActionGroup *
gtk_action_group_new (const gchar *name);

gtk_action_group_new устарело начиная с версии 3.10 и не должно использоваться в новом коде.

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

Параметры

name

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

Возвращает

новый GtkActionGroup

С: 2.4

gtk_action_group_get_name ()

const gchar *
gtk_action_group_get_name (GtkActionGroup *action_group);

gtk_action_group_get_name устарело начиная с версии 3.10 и не должно использоваться в новом коде.

Возвращает имя группы действий.

Параметры

action_group

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

Возвращает

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

С: 2.4

gtk_action_group_get_sensitive ()

gboolean
gtk_action_group_get_sensitive (GtkActionGroup *action_group);

gtk_action_group_get_sensitive устарело начиная с версии 3.10 и не должно использоваться в новом коде.

Возвращает 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);

gtk_action_group_set_sensitive устарело начиная с версии 3.10 и не должно использоваться в новом коде.

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

Параметры

action_group

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

sensitive

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

С: 2.4

gtk_action_group_get_visible ()

gboolean
gtk_action_group_get_visible (GtkActionGroup *action_group);

gtk_action_group_get_visible устарело начиная с версии 3.10 и не должно использоваться в новом коде.

Возвращает 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);

gtk_action_group_set_visible устарело начиная с версии 3.10 и не должно использоваться в новом коде.

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

Параметры

action_group

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

visible

новая видимость

С: 2.4

gtk_action_group_get_accel_group ()

GtkAccelGroup *
gtk_action_group_get_accel_group (GtkActionGroup *action_group);

gtk_action_group_get_accel_group устарело начиная с версии 3.10 и не должно использоваться в новом коде.

Возвращает группу ускорителей.

Параметры

action_group

GtkActionGroup

Возвращает

группу ускорителей, связанную с этой группой действий, или NULL, если её нет.

[transfer none]

С: 3.6

gtk_action_group_set_accel_group ()

void
gtk_action_group_set_accel_group (GtkActionGroup *action_group,
                                  GtkAccelGroup *accel_group);

gtk_action_group_set_accel_group устарело начиная с версии 3.10 и не должно использоваться в новом коде.

Устанавливает группу ускорителей, которую будет использовать каждое действие в этой группе.

Параметры

action_group

GtkActionGroup

accel_group

GtkAccelGroup для установки или NULL.

[allow-none]

С: 3.6

gtk_action_group_get_action ()

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

gtk_action_group_get_action устарело начиная с версии 3.10 и не должно использоваться в новом коде.

Ищет действие в группе действий по имени.

Параметры

action_group

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

action_name

имя действия

Возвращает

действие или NULL, если действие с таким именем не существует.

[transfer none]

С: 2.4

gtk_action_group_list_actions ()

GList *
gtk_action_group_list_actions (GtkActionGroup *action_group);

gtk_action_group_list_actions устарело начиная с версии 3.10 и не должно использоваться в новом коде.

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

Параметры

action_group

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

Возвращает

выделенный список объектов действий в группе действий.

[element-type GtkAction][transfer container]

С: 2.4

gtk_action_group_add_action ()

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

gtk_action_group_add_action устарела начиная с версии 3.10 и не должна использоваться в новом коде.

Добавляет объект действия в группу действий. Обратите внимание, что эта функция не настраивает путь акселератора действия, что может привести к проблемам, если пользователь попытается изменить акселератор элемента меню, связанного с действием. Поэтому вы должны либо самостоятельно установить путь акселератора с помощью 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);

gtk_action_group_add_action_with_accel устарела начиная с версии 3.10 и не должна использоваться в новом коде.

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

Если accelerator является NULL, пытается использовать акселератор, связанный с stock_id действия.

Пути акселераторов устанавливаются в <Actions>/group-name/action-name.

Параметры

action_group

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

action

действие для добавления

accelerator

акселератор для действия в формате, понятном gtk_accelerator_parse(), или "" для отсутствия акселератора, или NULL для использования стандартного акселератора.

[allow-none]

С версии: 2.4

gtk_action_group_remove_action ()

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

gtk_action_group_remove_action устарела начиная с версии 3.10 и не должна использоваться в новом коде.

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

Параметры

action_group

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

action

действие

С версии: 2.4

gtk_action_group_add_actions ()

void
gtk_action_group_add_actions (GtkActionGroup *action_group,
                              const GtkActionEntry *entries,
                              guint n_entries,
                              gpointer user_data);

gtk_action_group_add_actions устарела начиная с версии 3.10 и не должна использоваться в новом коде.

Это вспомогательная функция для создания нескольких действий и добавления их в группу действий.

Сигналы “activate” действий подключаются к обратным вызовам, а их пути акселераторов устанавливаются в <Actions>/group-name/action-name.

[skip]

Параметры

action_group

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

entries

массив описаний действий.

[array length=n_entries]

n_entries

количество записей

user_data

данные для передачи в обратные вызовы действий

С версии: 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_full устарела начиная с версии 3.10 и не должна использоваться в новом коде.

Этот вариант gtk_action_group_add_actions() добавляет обратный вызов GDestroyNotify для user_data.

[skip]

Параметры

action_group

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

entries

массив описаний действий.

[array length=n_entries]

n_entries

количество записей

user_data

данные для передачи в обратные вызовы действий

destroy

обратный вызов уведомления об уничтожении для user_data.

[nullable]

С версии: 2.4

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

gtk_action_group_add_toggle_actions устарела начиная с версии 3.10 и не должна использоваться в новом коде.

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

Сигналы “activate” действий подключаются к обратным вызовам, а их пути акселераторов устанавливаются в <Actions>/group-name/action-name.

[skip]

Параметры

action_group

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

entries

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

[array length=n_entries]

n_entries

количество записей

user_data

данные для передачи в обратные вызовы действий

С версии: 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_full устарела начиная с версии 3.10 и не должна использоваться в новом коде.

Этот вариант gtk_action_group_add_toggle_actions() добавляет обратный вызов GDestroyNotify для user_data.

[skip]

Параметры

action_group

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

entries

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

[array length=n_entries]

n_entries

количество записей

user_data

данные для передачи в обратные вызовы действий

destroy

обратный вызов уведомления об уничтожении для user_data.

[nullable]

С версии: 2.4

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

gtk_action_group_add_radio_actions устарел начиная с версии 3.10 и не должен использоваться в новых кодах.

Это служебная функция для создания группы радио-действий и добавления их в группу действий.

Сигнал «changed» первого радио-действия подключён к обратной функции on_change, а пути ускоренного доступа действий установлены в <Actions>/group-name/action-name.

[skip]

Параметры

action_group

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

entries

массив описаний радио-действий.

[array length=n_entries]

n_entries

количество элементов

value

значение действия, которое нужно активировать по умолчанию, или -1, если не нужно активировать ни одно действие

on_change

обратная функция для подключения к сигналу изменения

user_data

данные, которые нужно передать в обратные функции действий

С: 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);

gtk_action_group_add_radio_actions_full устарел начиная с версии 3.10 и не должен использоваться в новых кодах.

Этот вариант gtk_action_group_add_radio_actions() добавляет обратную функцию GDestroyNotify для user_data .

[skip]

Параметры

action_group

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

entries

массив описаний радио-действий.

[array length=n_entries]

n_entries

количество элементов

value

значение действия, которое нужно активировать по умолчанию, или -1, если не нужно активировать ни одно действие

on_change

обратная функция для подключения к сигналу изменения

user_data

данные, которые нужно передать в обратные функции действий

destroy

обратная функция уведомления об удалении для user_data

С: 2.4

GtkTranslateFunc ()

gchar *
(*GtkTranslateFunc) (const gchar *path,
                     gpointer func_data);

GtkTranslateFunc устарел начиная с версии 3.10 и не должен использоваться в новых кодах.

Функция, используемая для перевода сообщений, например, в GtkIconFactory и GtkActionGroup.

Параметры

path

Идентификатор сообщения. В GtkActionGroup это будет метка или всплывающая подсказка из GtkActionEntry.

func_data

переданные пользовательские данные при регистрации функции.

[closure]

Возвращаемое значение

переведённое сообщение

gtk_action_group_set_translate_func ()

void
gtk_action_group_set_translate_func (GtkActionGroup *action_group,
                                     GtkTranslateFunc func,
                                     gpointer data,
                                     GDestroyNotify notify);

gtk_action_group_set_translate_func устарел начиная с версии 3.10 и не должен использоваться в новых кодах.

Устанавливает функцию для перевода label и tooltip элементов GtkActionEntrys, добавленных с помощью gtk_action_group_add_actions().

Если вы используете gettext(), достаточно установить домен перевода с помощью gtk_action_group_set_translation_domain().

Параметры

action_group

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

func

функция перевода GtkTranslateFunc

data

данные, которые необходимо передать в func и notify

notify

функция уведомления об удалении GDestroyNotify, которая вызывается при удалении action_group и при повторном изменении функции перевода

С: 2.4

gtk_action_group_set_translation-domain ()

void
gtk_action_group_set_translation_domain
                               (GtkActionGroup *action_group,
                                const gchar *domain);

gtk_action_group_set_translation_domain устарел начиная с версии 3.10 и не должен использоваться в новых кодах.

Устанавливает домен перевода и использует g_dgettext() для перевода label и tooltip элементов GtkActionEntrys, добавленных с помощью gtk_action_group_add_actions().

Если вы не используете gettext() для локализации, см. gtk_action_group_set_translate_func().

Параметры

action_group

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

domain

домен перевода для вызовов g_dgettext(), или NULL, чтобы использовать домен, установленный с textdomain().

[allow-none]

С: 2.4

gtk_action_group_translate_string ()

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

gtk_action_group_translate_string устарела начиная с версии 3.10 и не должна использоваться в новом коде.

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

Параметры

action_group

a GtkActionGroup

string

a string

Возвращаемое значение

перевод string

С: 2.6

Типы и значения

struct GtkActionGroup

struct GtkActionGroup;

struct GtkActionGroupClass

struct GtkActionGroupClass {
  GObjectClass parent_class;

  GtkAction *(* get_action) (GtkActionGroup *action_group,
                             const gchar    *action_name);
};

Члены

get_action ()

Ищет действие в группе действий по имени.

struct GtkActionEntry

struct GtkActionEntry {
  const gchar     *name;
  const gchar     *stock_id;
  const gchar     *label;
  const gchar     *accelerator;
  const gchar     *tooltip;
  GCallback  callback;
};

GtkActionEntry устарела начиная с версии 3.10 и не должна использоваться в новом коде.

GtkActionEntry используются с gtk_action_group_add_actions() для создания действий.

Члены

const gchar *name;

Имя действия.

const gchar *stock_id;

Идентификатор стандартного действия или имя значка из темы значков.

const gchar *label;

Метка действия. Этот член обычно должен быть помечен для перевода, см. gtk_action_group_set_translation_domain(). Если label равен NULL, используется метка стандартного элемента с идентификатором stock_id.

const gchar *accelerator;

Акселератор действия в формате, понятном gtk_accelerator_parse().

const gchar *tooltip;

Подсказка к действию. Этот член обычно должен быть помечен для перевода, см. gtk_action_group_set_translation_domain().

GCallback callback;

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

struct GtkToggleActionEntry

struct GtkToggleActionEntry {
  const gchar     *name;
  const gchar     *stock_id;
  const gchar     *label;
  const gchar     *accelerator;
  const gchar     *tooltip;
  GCallback  callback;
  gboolean   is_active;
};

GtkToggleActionEntry устарела начиная с версии 3.10 и не должна использоваться в новом коде.

GtkToggleActionEntry используются с gtk_action_group_add_toggle_actions() для создания переключаемых действий.

Члены

const gchar *name;

Имя действия.

const gchar *stock_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;

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

Структура GtkRadioActionEntry

struct GtkRadioActionEntry {
  const gchar *name;
  const gchar *stock_id;
  const gchar *label;
  const gchar *accelerator;
  const gchar *tooltip;
  gint   value; 
};

GtkRadioActionEntry устарела начиная с версии 3.10 и не должна использоваться в новом коде.

GtkRadioActionEntry структуры используются с gtk_action_group_add_radio_actions() для создания групп радио-действий.

Члены

const gchar *name;

Имя действия.

const gchar *stock_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().

Подробное описание свойств

Свойство “accel-group”

  “accel-group”              GtkAccelGroup *

Группа акселераторов, которую должны использовать действия этой группы.

GtkActionGroup:accel-group устарела начиная с версии 3.10 и не должна использоваться в новом коде.

Флаги: Чтение / Запись

Свойство “name”

  “name”                     gchar *

Имя для действия.

GtkActionGroup:name устарела начиная с версии 3.10 и не должна использоваться в новом коде.

Флаги: Чтение / Запись / Только для создания

Значение по умолчанию: NULL

Свойство “sensitive”

  “sensitive”                gboolean

Включено ли действие группы.

GtkActionGroup:sensitive устарела начиная с версии 3.10 и не должна использоваться в новом коде.

Флаги: Чтение / Запись

Значение по умолчанию: TRUE

Свойство “visible”

  “visible”                  gboolean

Видима ли группа действий.

GtkActionGroup:visible устарела начиная с версии 3.10 и не должна использоваться в новом коде.

Флаги: Чтение / Запись

Значение по умолчанию: TRUE

Подробное описание сигналов

Сигнал “connect-proxy”

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

Сигнал ::connect-proxy генерируется после подключения прокси к действию в группе. Обратите внимание, что прокси может быть подключен к другому действию ранее.

Это предназначено для простых настроек, для которых класс пользовательского действия будет слишком громоздким, например, для отображения всплывающих подсказок для элементов меню в строке состояния.

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

GtkActionGroup::connect-proxy устарела начиная с версии 3.10 и не должна использоваться в новом коде.

Параметры

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

GtkActionGroup::disconnect-proxy устарела начиная с версии 3.10 и не должна использоваться в новом коде.

Параметры

action_group

группа

action

действие

proxy

прокси

user_data

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

С момента: 2.4

Сигнал “post-activate”

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

Сигнал ::post-activate генерируется сразу после активации action в action_group.

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

GtkActionGroup::post-activate устарела начиная с версии 3.10 и не должна использоваться в новом коде.

Параметры

action_group

группа

action

действие

user_data

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

С момента: 2.4

Сигнал “pre-activate”

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

Сигнал ::pre-activate генерируется непосредственно перед активацией action в action_group.

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

GtkActionGroup::pre-activate устарела начиная с версии 3.10 и не должна использоваться в новом коде.

Параметры

action_group

группа

action

действие

user_data

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

С момента: 2.4

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.22/GtkActionGroup.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API