GTK+ Reference Manual |
||||
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties | Signals |
GtkRecentManagerGtkRecentManager Управление недавно используемыми файлами |
#include <gtk/gtk.h>
GtkRecentManager;
GtkRecentInfo;
GtkRecentData;
#define GTK_RECENT_MANAGER_ERROR
enum GtkRecentManagerError;
GtkRecentManager* gtk_recent_manager_new (void);
GtkRecentManager* gtk_recent_manager_get_default
(void);
GtkRecentManager* gtk_recent_manager_get_for_screen
(GdkScreen *screen);
void gtk_recent_manager_set_screen (GtkRecentManager *manager,
GdkScreen *screen);
gboolean gtk_recent_manager_add_item (GtkRecentManager *manager,
const gchar *uri);
gboolean gtk_recent_manager_add_full (GtkRecentManager *manager,
const gchar *uri,
const GtkRecentData *recent_data);
gboolean gtk_recent_manager_remove_item (GtkRecentManager *manager,
const gchar *uri,
GError **error);
GtkRecentInfo* gtk_recent_manager_lookup_item
(GtkRecentManager *manager,
const gchar *uri,
GError **error);
gboolean gtk_recent_manager_has_item (GtkRecentManager *manager,
const gchar *uri);
gboolean gtk_recent_manager_move_item (GtkRecentManager *manager,
const gchar *uri,
const gchar *new_uri,
GError **error);
gint gtk_recent_manager_get_limit (GtkRecentManager *manager);
void gtk_recent_manager_set_limit (GtkRecentManager *manager,
gint limit);
GList* gtk_recent_manager_get_items (GtkRecentManager *manager);
gint gtk_recent_manager_purge_items (GtkRecentManager *manager,
GError **error);
GtkRecentInfo* gtk_recent_info_ref (GtkRecentInfo *info);
void gtk_recent_info_unref (GtkRecentInfo *info);
const gchar* gtk_recent_info_get_uri (GtkRecentInfo *info);
const gchar* gtk_recent_info_get_display_name
(GtkRecentInfo *info);
const gchar* gtk_recent_info_get_description
(GtkRecentInfo *info);
const gchar* gtk_recent_info_get_mime_type (GtkRecentInfo *info);
time_t gtk_recent_info_get_added (GtkRecentInfo *info);
time_t gtk_recent_info_get_modified (GtkRecentInfo *info);
time_t gtk_recent_info_get_visited (GtkRecentInfo *info);
gboolean gtk_recent_info_get_private_hint
(GtkRecentInfo *info);
gboolean gtk_recent_info_get_application_info
(GtkRecentInfo *info,
const gchar *app_name,
gchar **app_exec,
guint *count,
time_t *time_);
gchar** gtk_recent_info_get_applications
(GtkRecentInfo *info,
gsize *length);
gchar* gtk_recent_info_last_application
(GtkRecentInfo *info);
gchar** gtk_recent_info_get_groups (GtkRecentInfo *info,
gsize *length);
gboolean gtk_recent_info_has_group (GtkRecentInfo *info,
const gchar *group_name);
gboolean gtk_recent_info_has_application (GtkRecentInfo *info,
const gchar *app_name);
GdkPixbuf* gtk_recent_info_get_icon (GtkRecentInfo *info,
gint size);
gchar* gtk_recent_info_get_short_name (GtkRecentInfo *info);
gchar* gtk_recent_info_get_uri_display (GtkRecentInfo *info);
gint gtk_recent_info_get_age (GtkRecentInfo *info);
gboolean gtk_recent_info_is_local (GtkRecentInfo *info);
gboolean gtk_recent_info_exists (GtkRecentInfo *info);
gboolean gtk_recent_info_match (GtkRecentInfo *info_a,
GtkRecentInfo *info_b);
GObject
+----GtkRecentManager
"filename" gchararray : Read / Write / Construct Only
"limit" gint : Read / Write
"size" gint : Read
"changed" void user_function (GtkRecentManager *recent_manager,
gpointer user_data) : Run first
GtkRecentManager обеспечивает удобное добавление, удаление и поиск недавно используемых файлов. Каждый недавно используемый файл идентифицируется URI, и имеет мета-данные связанные с ним, такие как имена и командные строки приложений которые были зарегистрированы им, число и время каждого приложения имеющего зарегистрированным тот же файл, mime тип файла и должен ли файл отображаться только зарегистрированными им приложениями.
GtkRecentManager действует как база данных всех недавно используемых файлов. Вы можете создать новый объект GtkRecentManager, но более удобно использовать стандартный менеджер для GdkScreen так как информация о недавно используемых файлах разделяется между разными людьми использующими его. В случае использования экрана по умолчанию, добавление нового недавно используемого файла происходит так:
GtkRecentManager *manager;
manager = gtk_recent_manager_get_default()
;
gtk_recent_manager_add_item (manager, file_uri);
Поиск недавно используемого файла происходит так:
GtkRecentManager *manager;
GtkRecentInfo *info;
GError *error = NULL;
manager = gtk_recent_manager_get_default()
;
info = gtk_recent_manager_lookup_item (manager, file_uri, &error);
if (error)
{
g_warning ("Could not find the file: %s", error->message);
g_error_free (error);
}
else
{
/* Используем информационный объект */
gtk_recent_info_unref (info);
}
Недавно используемые файлы поддерживаются начиная с версии GTK+ 2.10.
typedef struct _GtkRecentManager GtkRecentManager;Действует как база данных информации о списке недавно используемых файлов. Обычно, для получения менеджера недавно используемых файлов для определенного экрана вам нужно использовать
gtk_recent_manager_get_for_screen()
которая выдаст информацию о текущемм менеджере для этого экрана.
GtkRecentInfo
typedef struct _GtkRecentInfo GtkRecentInfo;Содержит информацию найденную при просмотре ввода списка недавно используемых файлов.
GtkRecentData
typedef struct { gchar *display_name; gchar *description; gchar *mime_type; gchar *app_name; gchar *app_exec; gchar **groups; gboolean is_private; } GtkRecentData;
Мета-данные помещаемые в
gtk_recent_manager_add_full()
при регистрации недавно используемого ресурса.Мета-данные помещаемые в
gtk_recent_manager_add_full()
. Вы должны использовать GtkRecentData если вы хотите управлять мета-данными связанными с вводом списка недавно используемых файлов когда вы добавляете в него новый файл.
gchar * |
Строка в кодировке UTF-8, содержит имя
недавно используемого ресурса для
отображения, или |
gchar * |
Строка в кодировке UTF-8, содержит
короткое описание ресурса, или |
gchar * |
MIME тип ресурса; |
gchar * |
Имя приложения которое зарегистрировано с этим недавно использованным ресурсом; |
gchar * |
Командная строка используемая для
запуска этого ресурса; может содержать
" |
gchar ** |
Вектор строк содержащий имена групп; |
gboolean |
Должен ли ресурс отображаться только приложениями которые зарегистрированы с ним или нет. |
#define GTK_RECENT_MANAGER_ERROR (gtk_recent_manager_error_quark ())GQuark используемый для GtkRecentManagerError ошибок.
enum GtkRecentManagerError
typedef enum { GTK_RECENT_MANAGER_ERROR_NOT_FOUND, GTK_RECENT_MANAGER_ERROR_INVALID_URI, GTK_RECENT_MANAGER_ERROR_INVALID_ENCODING, GTK_RECENT_MANAGER_ERROR_NOT_REGISTERED, GTK_RECENT_MANAGER_ERROR_READ, GTK_RECENT_MANAGER_ERROR_WRITE, GTK_RECENT_MANAGER_ERROR_UNKNOWN } GtkRecentManagerError;
Коды ошибок для GtkRecentManager операций
Определённый URI не существует в списке недавно используемых файлов. |
|
Недопустимый URI. |
|
Строка не в кодировке UTF-8. |
|
Нет приложения имеющего регистрацию с определенным элементом. |
|
Не удаётся прочесть недавно используемый ресурсный файл. |
|
Не удаётся записать недавно используемый ресурсный файл. |
|
Неопределенная ошибка. |
GtkRecentManager* gtk_recent_manager_new (void);Создаёт новый объект менеджера недавно используемых файлов. Менеджер используется для обработки недавно используемых ресурсных файлов. GtkRecentManager объект проверяет список недавно используемых файлов и издаёт сигнал "changed" каждый раз когда список изменяется.
GtkRecentManager объекты являются экспансивными: убедитесь что создаёте их только когда они необходимы. Вы должны использовать
gtk_recent_manager_new_for_screen()
илиgtk_recent_manager_get_default()
функции вместо них.
Возвращает : |
Вновь созданный объект GtkRecentManager. |
Начиная с версии 2.10
GtkRecentManager* gtk_recent_manager_get_default
(void);
Выдаёт менеджер для экрана по умолчанию.
Смотрите gtk_recent_manager_get_for_screen()
.
Возвращает : |
Уникальный GtkRecentManager связанный с экраном по умолчанию. Этот менеджер связан с экраном и может использоваться пока экран открыт. Не нужно делать на него ссылки или отменять их. |
Начиная с версии 2.10
GtkRecentManager* gtk_recent_manager_get_for_screen
(GdkScreen *screen);
Выдаёт менеджер связанный с screen
;
если эта функция вызвана для экрана не
созданного предварительно, новый
менеджер недавно используемых объектов
будет создан и связан с этим экраном.
Менеджер недавно используемых файлов
довольно трудоёмкий для создания,
поэтому использование этой функции
лучший выбор чем вызов gtk_recent_manager_new()
и установка экрана самостоятельно; при
использовании этой функции единственный
объект управления недавно созданными
файлами будет распределен между
пользователями.
|
|
Возвращает : |
Уникальный GtkRecentManager связанный с полученным экраном. Этот менеджер связан с экраном и может использоваться пока экран открыт. Не нужно делать на него ссылки или отменять их. |
Начиная с версии 2.10
void gtk_recent_manager_set_screen (GtkRecentManager *manager,
GdkScreen *screen);
Устанавливает экран для менеджера недавно используемых файлов; экран используется для слежения за текущемй конфигурацией хранения недавно используемых пользователем документов.
|
|
|
Начиная с версии 2.10
gboolean gtk_recent_manager_add_item (GtkRecentManager *manager,
const gchar *uri);
Добавляет новый ресурс, указанный uri
,
в список недавно использованных ресурсов.
Эта функция автоматически определяет
некоторые необходимые мета-данные и
устанавливает другие мета-данные в
обычные значения по умолчанию; передаёт
данные в gtk_recent_manager_add_full()
.
Смотрите gtk_recent_manager_add_full()
если вам нужно явно определить метаданные
для ресурса указанного uri
.
|
|
|
Допустимый URI |
Возвращает : |
|
Начиная с версии 2.10
gboolean gtk_recent_manager_add_full (GtkRecentManager *manager,
const gchar *uri,
const GtkRecentData *recent_data);
Добавляет новый ресурс, указанный uri
,
в список недавно используемых ресурсов,
используя метаданные внутри GtkRecentData
структуры помещенной в recent_data
.
Помещаемый URI будет использован как идентификатор этого ресурса в списке.
Для регистрации нового недавно использованного ресурса, метаданные должны быть помещены так же как URI; метаданные хранятся в структуре GtkRecentData, которая должна содержать MIME тип ресурса указанного URI; имя зарегистрированного приложения и командную строку для запуска этого элемента.
Опционально, GtkRecentData структура может содержать UTF-8 строку для использования при просмотре элементов вместо последнего компонента URI; короткое описание элемента; должен ли элемент рассматриваться как закрытый то есть отображаться только зарегистрированными приложениями.
|
|
|
Допустимый URI |
|
Метаданные ресурса |
Возвращает : |
|
Начиная с версии 2.10
gboolean gtk_recent_manager_remove_item (GtkRecentManager *manager,
const gchar *uri,
GError **error);
Удаляет ресурс указанный uri
из списка недавно используемых ресурсов
обрабатываемого менеджером.
|
|
|
URI элемента который вы хотите удалить |
|
|
Возвращает : |
|
Начиная с версии 2.10
GtkRecentInfo* gtk_recent_manager_lookup_item
(GtkRecentManager *manager,
const gchar *uri,
GError **error);
Ищет URI внутри списка недавно используемых элементов и возвращает структуру содержащую информацию о ресурсе, такую как MIME тип, или его отображаемое имя.
|
|
|
URI |
|
|
Возвращает : |
GtkRecentInfo структуру
содержащую информацию о ресурсе
указанного |
Начиная с версии 2.10
gboolean gtk_recent_manager_has_item (GtkRecentManager *manager,
const gchar *uri);
Проверяет содержится ли недавно
используемый элемент зарегистрированный
с uri
внутри менеджера.
|
|
|
URI |
Возвращает : |
Начиная с версии 2.10
gboolean gtk_recent_manager_move_item (GtkRecentManager *manager,
const gchar *uri,
const gchar *new_uri,
GError **error);
Изменяет расположение недавно
используемого элемента из uri
в new_uri
.
Пожалуйста помните, что эта функция не будет влиять на ресурс указанный URIs, а только на URI используемые в списке недавно используемых ресурсов.
|
|
|
URI недавно использованного ресурса |
|
новый URI недавно использованного
ресурса, или |
|
|
Возвращает : |
|
Начиная с версии 2.10
gint gtk_recent_manager_get_limit (GtkRecentManager *manager);Выдаёт максимальное количество элементов которое должна вернуть функция
gtk_recent_manager_get_items()
.
|
|
Возвращает : |
Количество возвращаемых элементов, или -1 для возвращения всех элементов. |
Начиная с версии 2.10
void gtk_recent_manager_set_limit (GtkRecentManager *manager,
gint limit);
Устанавливает максимальное количество
элементов которое должна вернуть функция
gtk_recent_manager_get_items()
.
Если limit
равен -1, то возвращаются
все элементы.
|
|
|
Максимальное число возвращаемых элементов, или -1. |
Начиная с версии 2.10
GList* gtk_recent_manager_get_items (GtkRecentManager *manager);Выдаёт список недавно использованных ресурсов.
|
|
Возвращает : |
Список вновь распределённых объектов
GtkRecentInfo. Используйте
|
Начиная с версии 2.10
gint gtk_recent_manager_purge_items (GtkRecentManager *manager,
GError **error);
Очищает все элементы из списка недавно использованных ресурсов.
|
|
|
|
Возвращает : |
Число элементов удалённых из списка недавно использованных ресурсов. |
Начиная с версии 2.10
GtkRecentInfo* gtk_recent_info_ref (GtkRecentInfo *info);Увеличивает счет ссылок
recent_info
на одну.
|
|
Возвращает : |
Информация недавно использованных объектов с увеличенным количеством ссылок на одну. |
Начиная с версии 2.10
void gtk_recent_info_unref (GtkRecentInfo *info);Уменьшает количество ссылок
info
на одну. Если количество ссылок 0,info
де распределяется, а память освобождается.
|
Начиная с версии 2.10
const gchar* gtk_recent_info_get_uri (GtkRecentInfo *info);Выдаёт URI ресурса.
|
|
Возвращает : |
URI ресурса. Возвращаемой строкой владеет менеджер и её не нужно освобождать. |
Начиная с версии 2.10
const gchar* gtk_recent_info_get_display_name
(GtkRecentInfo *info);
Выдаёт имя ресурса. Если нет определённого, выдаётся основное имя ресурса.
|
|
Возвращает : |
Отображаемое имя ресурса. Возвращаемой строкой владеет менеджер и её не нужно освобождать. |
Начиная с версии 2.10
const gchar* gtk_recent_info_get_description
(GtkRecentInfo *info);
Выдаёт (краткое) описание ресурса.
|
|
Возвращает : |
Описание ресурса. Возвращаемой строкой владеет менеджер и её не нужно освобождать. |
Начиная с версии 2.10
const gchar* gtk_recent_info_get_mime_type (GtkRecentInfo *info);Выдаёт MIME тип ресурса.
|
|
Возвращает : |
MIME тип ресурса. Возвращаемой строкой владеет менеджер и её не нужно освобождать. |
Начиная с версии 2.10
time_t gtk_recent_info_get_added (GtkRecentInfo *info);Выдаёт временной шаблон (в секундах системной Эпохи (system's Epoch)) когда был добавлен ресурс в список недавно использованных ресурсов.
|
|
Возвращает : |
Количество секунд системной Эпохи истекших к моменту добавления в список, или -1 при неудаче. |
Начиная с версии 2.10
time_t gtk_recent_info_get_modified (GtkRecentInfo *info);Выдаёт временной шаблон (в секундах системной Эпохи (system's Epoch)) когда был изменён список.
|
|
Возвращает : |
Количество секунд системной Эпохи истекших к моменту добавления в список, или -1 при неудаче. |
Начиная с версии 2.10
time_t gtk_recent_info_get_visited (GtkRecentInfo *info);Выдаёт временной шаблон (в секундах системной Эпохи (system's Epoch)) когда был последний раз использован ресурс.
|
|
Возвращает : |
Количество секунд системной Эпохи истекших с момента добавления в список, или -1 при неудаче. |
Начиная с версии 2.10
gboolean gtk_recent_info_get_private_hint
(GtkRecentInfo *info);
Выдаёт значение флага "private". Недавно
использованный ресурс с установленным
флагом TRUE
должен отображаться только
зарегистрированными приложениями.
|
|
Возвращает : |
Начиная с версии 2.10
gboolean gtk_recent_info_get_application_info
(GtkRecentInfo *info,
const gchar *app_name,
gchar **app_exec,
guint *count,
time_t *time_);
Выдаёт данные относительно
зарегистрированного приложения ресурса
указанного info
.
Если командная строка содержит любые escape символы определенные в спецификации хранения, она будет дополнена.
|
|
|
Имя приложения которое зарегистрировано с этим элементом |
|
Место хранения возвращаемой строки содержащей команду запуска |
|
Место хранения возвращаемого значения количества раз регистрации этого элемента |
|
Место хранения возвращаемого значения временного шаблона последней регистрации для этого приложения |
Возвращает : |
|
Начиная с версии 2.10
gchar** gtk_recent_info_get_applications
(GtkRecentInfo *info,
gsize *length);
Определяет список приложений зарегистрированных для этого ресурса.
|
|
|
Место хранения возвращаемого значения
длины возвращаемого списка, или |
Возвращает : |
Вновь распределенный |
Начиная с версии 2.10
gchar* gtk_recent_info_last_application
(GtkRecentInfo *info);
Выдаёт имя последнего приложения
зарегистрированного недавно использованным
ресурсом представленным info
.
|
|
Возвращает : |
Имя приложения. Используйте для его
освобождения |
Начиная с версии 2.10
gchar** gtk_recent_info_get_groups (GtkRecentInfo *info,
gsize *length);
Возвращает все группы зарегистрированные
для недавно использованного элемента
info
. Массив возвращаемых
имен групп завершается NULL
,
поэтому опционально длина может быть
NULL
.
|
|
|
Место хранения возвращаемого значения
количества возвращаемых групп, или
|
Возвращает : |
Вновь распределенный, |
Начиная с версии 2.10
gboolean gtk_recent_info_has_group (GtkRecentInfo *info,
const gchar *group_name);
Контролирует объявляется ли group_name
внутри зарегистрированных групп недавно
использованного элемента info
.
|
|
|
Имя группы |
Возвращает : |
|
Начиная с версии 2.10
gboolean gtk_recent_info_has_application (GtkRecentInfo *info,
const gchar *app_name);
Проверяет зарегистрировано ли приложение
ресурсом используя app_name
.
|
|
|
Строка содержащая имя приложения |
Возвращает : |
|
Начиная с версии 2.10
GdkPixbuf* gtk_recent_info_get_icon (GtkRecentInfo *info,
gint size);
Определяет размер значка size
связанный с ресурсом типа MIME.
|
|
|
Размер значка в пикселах |
Возвращает : |
Начиная с версии 2.10
gchar* gtk_recent_info_get_short_name (GtkRecentInfo *info);Расчитывает допустимую UTF-8 строку которая может использоваться как имя элемента в меню или списке. Например, вызов этой функции для элемента со ссылкой "file:///foo/bar.txt" выдаст "bar.txt".
|
|
Возвращает : |
Вновь распределенная строка в
кодировке UTF-8; освобождайте её с помощью
|
Начиная с версии 2.10
gchar* gtk_recent_info_get_uri_display (GtkRecentInfo *info);Выдаёт отключенную версию ресурсного URI.
|
|
Возвращает : |
UTF-8 строка содержащая ресурсный URI
или |
Начиная с версии 2.10
gint gtk_recent_info_get_age (GtkRecentInfo *info);Выдаёт количество дней истекших с момента последнего обновления ресурса указанного
info
.
|
|
Возвращает : |
Положительное целое содержащее количество дней истекших с момента последнего изменения ресурса. |
Начиная с версии 2.10
gboolean gtk_recent_info_is_local (GtkRecentInfo *info);Проверяет является ли ресурс локальным или нет, просматривая схему его URI.
|
|
Возвращает : |
|
Начиная с версии 2.10
gboolean gtk_recent_info_exists (GtkRecentInfo *info);Проверяет существование ресурса указанного
info
. В настоящий момент эта проверка работает только для ресурсов указывающих на локальные файлы.
|
|
Возвращает : |
|
Начиная с версии 2.10
gboolean gtk_recent_info_match (GtkRecentInfo *info_a,
GtkRecentInfo *info_b);
Проверяет указывают ли две структуры GtkRecentInfo на один и тот же ресурс.
|
|
|
|
Возвращает : |
|
Начиная с версии 2.10
filename
""filename" gchararray : Read / Write / Construct OnlyПолный путь файла для хранения и чтения в списке недавно использованных ресурсов.
Значение по умолчанию : NULL
Начиная с версии 2.10
Свойство "
limit
""limit" gint : Read / WriteМаксимальное количество элементов для возвращения функцией
gtk_recent_manager_get_items()
.Допустимые значения : >= -1
Значение по умолчанию : -1
Начиная с версии 2.10
Свойство "
size
""size" gint : ReadРазмер списка недавно использованных ресурсов.
Допустимые значения : >= -1
Значение по умолчанию : 0
Начиная с версии 2.10
Детали сигналов
Сигнал "changed"
void user_function (GtkRecentManager *recent_manager, gpointer user_data) : Run first
Издаётся когда в текущемм менеджере недавно использованных ресурсов изменилось содержимое.
|
Менеджер недавно использованных ресурсов |
|
Пользовательские данные помещаемые при подключении обработчика сигнала. |
Начиная с версии 2.10