The OpenNET Project / Index page

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

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

Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |  Signals

Карта акселераторов

Accelerator Maps спецификация загружаемых акселераторов клавиатуры

Краткий обзор

#include <gtk/gtk.h>


            GtkAccelMap;
void        (*GtkAccelMapForeach)           (gpointer data,
                                             const gchar *accel_path,
                                             guint accel_key,
                                             GdkModifierType accel_mods,
                                             gboolean changed);
void        gtk_accel_map_add_entry         (const gchar *accel_path,
                                             guint accel_key,
                                             GdkModifierType accel_mods);
gboolean    gtk_accel_map_lookup_entry      (const gchar *accel_path,
                                             GtkAccelKey *key);
gboolean    gtk_accel_map_change_entry      (const gchar *accel_path,
                                             guint accel_key,
                                             GdkModifierType accel_mods,
                                             gboolean replace);
void        gtk_accel_map_load              (const gchar *file_name);
void        gtk_accel_map_save              (const gchar *file_name);
void        gtk_accel_map_foreach           (gpointer data,
                                             GtkAccelMapForeach foreach_func);
void        gtk_accel_map_load_fd           (gint fd);
void        gtk_accel_map_save_fd           (gint fd);
void        gtk_accel_map_load_scanner      (GScanner *scanner);
void        gtk_accel_map_add_filter        (const gchar *filter_pattern);
void        gtk_accel_map_foreach_unfiltered
                                            (gpointer data,
                                             GtkAccelMapForeach foreach_func);
GtkAccelMap* gtk_accel_map_get              (void);
void        gtk_accel_map_lock_path         (const gchar *accel_path);
void        gtk_accel_map_unlock_path       (const gchar *accel_path);

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

  GObject
   +----GtkAccelMap

Сигналы

"changed"   void        user_function      (GtkAccelMap    *object,
                                            gchar          *accel_path,
                                            guint           accel_key,
                                            GdkModifierType accel_mods,
                                            gpointer        user_data)       : Run last / Has details

Описание

Детали

GtkAccelMap

typedef struct _GtkAccelMap GtkAccelMap;

GtkAccelMapForeach ()

void        (*GtkAccelMapForeach)           (gpointer data,
                                             const gchar *accel_path,
                                             guint accel_key,
                                             GdkModifierType accel_mods,
                                             gboolean changed);

data :

accel_path :

accel_key :

accel_mods :

changed :


gtk_accel_map_add_entry ()

void        gtk_accel_map_add_entry         (const gchar *accel_path,
                                             guint accel_key,
                                             GdkModifierType accel_mods);

Регистрирует новый акселератор в глобальной карте акселераторов. Эту функции нужно вызвать только однажды согласно accel_path с изначальными accel_key и accel_mods для этого пути. Чтобы изменить акселератор в течении времени выполнения программирования, используйте gtk_accel_map_change_entry(). Путь акселератора должен состоять из "<WINDOWTYPE>/Category1/Category2/.../Action", где <WINDOWTYPE> должен быть уникальным, определённым приложением, идентификатором, который соответствует виду окна использующего акселератор, например "Gimp-Image", "Abiword-Document" или "Gnumeric-Settings". Часть Category1/.../Action наиболее соответствует действию выбранному акселератору, то есть акселераторам пунктов меню, например "File/Save As", "Image/View/Zoom" или "Edit/Select All". Таким образом, действительный полный путь акселератора может выглядеть так: "<Gimp-Toolbox>/File/Dialogs/Tool Options...".

accel_path :

Действительный путь акселератора

accel_key :

Клавиатурный акселератор

accel_mods :

Модификатор акселератора


gtk_accel_map_lookup_entry ()

gboolean    gtk_accel_map_lookup_entry      (const gchar *accel_path,
                                             GtkAccelKey *key);

Просматривает введенный акселератор для accel_path и заполняет key.

accel_path :

Действительный путь акселератора

key :

Заполняемый клавиатурный акселератор (выборочно)

Возвращает :

TRUE если accel_path известен, иначе FALSE


gtk_accel_map_change_entry ()

gboolean    gtk_accel_map_change_entry      (const gchar *accel_path,
                                             guint accel_key,
                                             GdkModifierType accel_mods,
                                             gboolean replace);

Изменяет accel_key и accel_mods ассоциированные в текущеме время с accel_path. Из-за конфликтов с другими акселераторами, изменения не всегда возможны, replace указывает могут ли другие акселераторы быть удалены для решения конфликтов. Изменение происходит только если все конфликты устранены (отсутствуют противоречивые акселераторы). Полностью выполненное изменение указывается возвращением значения TRUE.

accel_path :

Действительный путь акселератора

accel_key :

Новый ключевой акселератор

accel_mods :

Новый модификатор акселератора

replace :

TRUE если конфликтующий акселератор может быть удалён

Возвращает :

TRUE если акселератор был изменён, иначе FALSE


gtk_accel_map_load ()

void        gtk_accel_map_load              (const gchar *file_name);

Анализирует файл, предварительно сохранённый gtk_accel_map_save(), для спецификации акселераторов и соответственно размножает их.

file_name :

Файл содержащий спецификацию акселераторов, имя файла закодировано в Glib


gtk_accel_map_save ()

void        gtk_accel_map_save              (const gchar *file_name);

Сохраняет текущую спецификацию акселераторов (путь акселератора, ключ и модификатор) в file_name. Файл записывается в формате подходящем для прочтения функцией gtk_accel_map_load().

file_name :

Имя файла содержащего спецификацию акселераторов, имя файла закодировано в GLib


gtk_accel_map_foreach ()

void        gtk_accel_map_foreach           (gpointer data,
                                             GtkAccelMapForeach foreach_func);

Перебирает записи в карте акселераторов, чей accel-путь не соответствует ни одному фильтру установленному gtk_accel_map_add_filter(), и выполняет для каждой foreach_func. Сигнатура foreach_func это GtkAccelMapForeach, параметр changed указывает какой акселератор изменен в течении текущемго выполнения (сохраняя текущий сформированный дамп карты акселераторов).

data :

Данные помещаемые в foreach_func

foreach_func :

Функция выполняемая для каждой не отфильтрованной записи карты акселераторов


gtk_accel_map_load_fd ()

void        gtk_accel_map_load_fd           (gint fd);

Вариант файлового дескриптора gtk_accel_map_load().

Помните, дескриптор файла не будет закрыт этой функцией.

fd :

Действительный, доступный для чтения дескриптор файла


gtk_accel_map_save_fd ()

void        gtk_accel_map_save_fd           (gint fd);

Вариант файлового дескриптора gtk_accel_map_save().

Помните, дескриптор файла не будет закрыт этой функцией.

fd :

Действительный, доступный для записи дескриптор файла


gtk_accel_map_load_scanner ()

void        gtk_accel_map_load_scanner      (GScanner *scanner);

GScanner вариант gtk_accel_map_load().

scanner :

GScanner которому предоставили файл ввода


gtk_accel_map_add_filter ()

void        gtk_accel_map_add_filter        (const gchar *filter_pattern);

Добавляет фильтр в глобальный список фильтров путей акселераторов.

Наносит записи на карту акселераторов пути которых соответствуют пропущенным фильтрам gtk_accel_map_foreach().

Эта функция предназначена для GTK+ модулей создающих собственные меню, но не хотят быть сохранёнными в сформированном дампе карты акселераторов приложения.

filter_pattern :

Регулярное выражение (смотрите GPatternSpec)


gtk_accel_map_foreach_unfiltered ()

void        gtk_accel_map_foreach_unfiltered
                                            (gpointer data,
                                             GtkAccelMapForeach foreach_func);

Перебирает все записи карты акселераторов и выполняет foreach_func для каждой. Сигнатура foreach_func это GtkAccelMapForeach, параметр changed указывает был ли изменён данный акселератор в течении текущемго выполнения (сохраняя текущий сформированный дамп карты акселераторов).

data :

Данные помещаемые в foreach_func

foreach_func :

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


gtk_accel_map_get ()

GtkAccelMap* gtk_accel_map_get              (void);

Получает единственный глобальный объект GtkAccelMap. Этот объект полезен только для сообщения изменений карты акселераторов посредством ::changed signal; это не параметр к другим функциям карты акселераторов.

Возвращает :

Глобальный объект GtkAccelMap

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


gtk_accel_map_lock_path ()

void        gtk_accel_map_lock_path         (const gchar *accel_path);

Замыкает заданный путь акселератора. Если карта акселераторов не содержит запись для accel_path, создаётся новая.

Замыкает путь акселератора препятствуя изменению акселератора в течении текущемго выполнения. Замкнутый путь акселератора может быть разомкнут gtk_accel_map_unlock_path(). Обратитесь к gtk_accel_map_change_entry() для получения информации об изменении акселераторов во время выполнения.

Если функция вызывается больше одного раза, accel_path остаётся замкнутым, до тех пор, пака не будет вызвана функция gtk_accel_map_unlock_path() эквивалентное количество раз.

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

accel_path :

Действительный путь акселератора

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


gtk_accel_map_unlock_path ()

void        gtk_accel_map_unlock_path       (const gchar *accel_path);

Уничтожает последний вызов gtk_accel_map_lock_path() для accel_path. Обратитесь к gtk_accel_map_lock_path() для информации о замыкании пути акселератора.

accel_path :

Действительный путь акселератора

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

Детали сигналов

Сигнал "changed"

void        user_function                  (GtkAccelMap    *object,
                                            gchar          *accel_path,
                                            guint           accel_key,
                                            GdkModifierType accel_mods,
                                            gpointer        user_data)       : Run last / Has details

Реагирует на изменения в глобальной карте акселераторов. Путь также используется как деталь для сигнала, поэтому возможно соединиться с измененным ::accel_path.

object :

Объект глобальной карты акселераторов

accel_path :

Путь изменённого акселератора

accel_key :

Ключевое значение для нового акселератора

accel_mods :

Маска модификатора для нового акселератора

user_data :

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

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




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

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