GtkRecentManager
GtkRecentManager — Управление недавно используемыми файлами
Функции
Сигналы
Типы и значения
| struct | GtkRecentManager |
| GtkRecentInfo | |
| struct | GtkRecentData |
| #define | GTK_RECENT_MANAGER_ERROR |
| enum | GtkRecentManagerError |
Иерархия объектов
GObject ╰── GtkRecentManager
Включаемые файлы
#include <gtk/gtk.h>
Описание
GtkRecentManager предоставляет механизм для добавления, удаления и поиска недавно используемых файлов. Каждый недавно использованный файл идентифицируется по своему URI и имеет метаданные, такие как имена и командные строки приложений, которые его зарегистрировали, количество раз, когда каждое приложение регистрировало тот же файл, тип MIME файла и флаг, указывающий, должен ли файл отображаться только приложениями, которые его зарегистрировали.
Список недавно использованных файлов хранится на уровне пользователя.
GtkRecentManager ведет базу данных всех недавно использованных файлов. Вы можете создавать новые объекты GtkRecentManager, но более эффективно использовать менеджер по умолчанию, созданный GTK+.
Добавление нового недавно использованного файла просто:
GtkRecentManager попытается собрать всю необходимую информацию из самого файла через GIO.
Для получения метаданных, связанных с недавно использованным файлом по его URI, необходимо вызвать gtk_recent_manager_lookup_item():
GtkRecentManager *manager; manager = gtk_recent_manager_get_default (); gtk_recent_manager_add_item (manager, file_uri);
Для получения списка недавно использованных файлов можно использовать gtk_recent_manager_get_items(), который возвращает список GtkRecentInfo-структур.
GtkRecentManager служит моделью для заполнения содержимого одного или нескольких GtkRecentChooser.
Обратите внимание, что максимальный возраст списка недавно использованных файлов можно контролировать через свойство “gtk-recent-files-max-age”.
Недавно использованные файлы поддерживаются с GTK+ 2.10.
Функции
gtk_recent_manager_new ()
GtkRecentManager *
gtk_recent_manager_new (void); Создаёт новый объект менеджера недавно использовавшихся ресурсов. Объекты менеджеров недавно использовавшихся ресурсов используются для управления списком недавно использовавшихся ресурсов. Объект GtkRecentManager отслеживает список недавно использовавшихся ресурсов и испускает сигнал «changed» каждый раз, когда что-то в списке изменяется.
Объекты GtkRecentManager имеют высокую стоимость: создавайте их только тогда, когда это необходимо. Вместо этого следует использовать gtk_recent_manager_get_default().
Возвращаемое значение
Новый созданный объект GtkRecentManager
С: 2.10
gtk_recent_manager_get_default ()
GtkRecentManager *
gtk_recent_manager_get_default (void); Возвращает единственный экземпляр объекта GtkRecentManager, который можно использовать в приложении, не беспокоясь об управлении памятью.
Возвращаемое значение
Единственный объект GtkRecentManager. Не нужно ссылаться на него или освобождать память.
[transfer none]
С: 2.10
gtk_recent_manager_add_item ()
gboolean gtk_recent_manager_add_item (GtkRecentManager *manager,const gchar *uri);
Добавляет новый ресурс, указанный по uri, в список недавно использовавшихся ресурсов.
Эта функция автоматически извлекает некоторые необходимые метаданные и устанавливает другие метаданные в значения по умолчанию; затем она передает данные в gtk_recent_manager_add_full().
См. gtk_recent_manager_add_full(), если вы хотите явно указать метаданные для ресурса, указанного по uri.
Параметры
manager | объект GtkRecentManager | |
uri | действительный URI |
Возвращаемое значение
TRUE, если новый элемент был успешно добавлен в список недавно использовавшихся ресурсов
С: 2.10
gtk_recent_manager_add_full ()
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; краткое описание элемента; флаг, указывающий, должен ли элемент считаться частным — т. е. отображаться только приложениями, которые его зарегистрировали.
Параметры
manager | объект GtkRecentManager | |
uri | действительный URI | |
recent_data | метаданные ресурса |
Возвращаемое значение
TRUE, если новый элемент был успешно добавлен в список недавно использовавшихся ресурсов, FALSE в противном случае
С: 2.10
gtk_recent_manager_remove_item ()
gboolean gtk_recent_manager_remove_item (GtkRecentManager *manager,const gchar *uri,GError **error);
Удаляет ресурс, указанный по uri, из списка недавно использовавшихся ресурсов, управляемых менеджером.
Параметры
manager | объект GtkRecentManager | |
uri | URI элемента, который нужно удалить | |
error | [allow-none] |
Возвращаемое значение
TRUE, если элемент, указанный по uri, был успешно удален из списка недавно использовавшихся ресурсов, и FALSE в противном случае
С: 2.10
gtk_recent_manager_lookup_item ()
GtkRecentInfo * gtk_recent_manager_lookup_item (GtkRecentManager *manager,const gchar *uri,GError **error);
Ищет URI в списке недавно использовавшихся ресурсов и возвращает GtkRecentInfo, содержащий информацию о ресурсе, такую как его тип MIME или имя для отображения.
Параметры
manager | объект GtkRecentManager | |
uri | URI | |
error | [allow-none] |
Возвращаемое значение
GtkRecentInfo, содержащий информацию о ресурсе, указанном по uri, или NULL, если URI не был зарегистрирован в списке недавно использовавшихся ресурсов. Освобождается с помощью gtk_recent_info_unref().
[nullable]
С: 2.10
gtk_recent_manager_has_item ()
gboolean gtk_recent_manager_has_item (GtkRecentManager *manager,const gchar *uri);
Проверяет, зарегистрирован ли недавно использованный ресурс с uri в менеджере.
Параметры
manager | объект GtkRecentManager | |
uri | URI |
С: 2.10
gtk_recent_manager_move_item ()
gboolean gtk_recent_manager_move_item (GtkRecentManager *manager,const gchar *uri,const gchar *new_uri,GError **error);
Изменяет расположение недавно используемого ресурса с uri на new_uri .
Обратите внимание, что эта функция не повлияет на ресурс, на который указывают URI, а только на URI, используемый в списке недавно использованных ресурсов.
Параметры
manager | менеджер GtkRecentManager | |
uri | URI недавно использованного ресурса | |
new_uri | новый URI недавно использованного ресурса или | [allow-none] |
error | [allow-none] |
Возвращаемое значение
TRUE в случае успеха
С: 2.10
gtk_recent_manager_get_items ()
GList *
gtk_recent_manager_get_items (GtkRecentManager *manager); Получает список недавно использованных ресурсов.
Параметры
manager | менеджер GtkRecentManager |
Возвращаемое значение
список только что выделенных объектов GtkRecentInfo. Используйте gtk_recent_info_unref() для каждого элемента в списке, а затем освободите сам список с помощью g_list_free().
[element-type GtkRecentInfo][transfer full]
С: 2.10
gtk_recent_manager_purge_items ()
gint gtk_recent_manager_purge_items (GtkRecentManager *manager,GError **error);
Очищает каждый элемент из списка недавно использованных ресурсов.
Параметры
manager | менеджер GtkRecentManager | |
error | [allow-none] |
Возвращаемое значение
количество элементов, удаленных из списка недавно использованных ресурсов
С: 2.10
gtk_recent_info_ref ()
GtkRecentInfo *
gtk_recent_info_ref (GtkRecentInfo *info); Увеличивает счетчик ссылок на recent_info на единицу.
Параметры
info | объект GtkRecentInfo |
Возвращаемое значение
объект recent info со счетчиком ссылок, увеличенным на единицу
С: 2.10
gtk_recent_info_unref ()
void
gtk_recent_info_unref (GtkRecentInfo *info); Уменьшает счетчик ссылок на info на единицу. Если счетчик ссылок достигнет нуля, info освобождается, и память освобождается.
Параметры
info | объект GtkRecentInfo |
С: 2.10
gtk_recent_info_get_uri ()
const gchar *
gtk_recent_info_get_uri (GtkRecentInfo *info); Получает URI ресурса.
Параметры
info | объект GtkRecentInfo |
Возвращаемое значение
URI ресурса. Возвращаемая строка принадлежит менеджеру ресурсов и не должна освобождаться.
С: 2.10
gtk_recent_info_get_display_name ()
const gchar *
gtk_recent_info_get_display_name (GtkRecentInfo *info); Получает имя ресурса. Если оно не определено, используется имя файла ресурса.
Параметры
info | объект GtkRecentInfo |
Возвращаемое значение
отображаемое имя ресурса. Возвращаемая строка принадлежит менеджеру ресурсов и не должна освобождаться.
С: 2.10
gtk_recent_info_get_description ()
const gchar *
gtk_recent_info_get_description (GtkRecentInfo *info); Получает краткое описание ресурса.
Параметры
info | объект GtkRecentInfo |
Возвращаемое значение
описание ресурса. Возвращаемая строка принадлежит менеджеру ресурсов и не должна освобождаться.
С: 2.10
gtk_recent_info_get_mime_type ()
const gchar *
gtk_recent_info_get_mime_type (GtkRecentInfo *info); Получает MIME-тип ресурса.
Параметры
info | объект GtkRecentInfo |
Возвращаемое значение
MIME-тип ресурса. Возвращаемая строка принадлежит менеджеру ресурсов и не должна освобождаться.
С: 2.10
gtk_recent_info_get_added ()
time_t
gtk_recent_info_get_added (GtkRecentInfo *info); Получает метку времени (секунды от эпохи системы), когда ресурс был добавлен в список недавно использованных ресурсов.
Параметры
info | объект GtkRecentInfo |
Возвращаемое значение
количество секунд, прошедших с эпохи системы, когда ресурс был добавлен в список, или -1 в случае ошибки.
С: 2.10
gtk_recent_info_get_modified ()
time_t
gtk_recent_info_get_modified (GtkRecentInfo *info); Получает метку времени (секунды от эпохи системы), когда метаданные ресурса были в последний раз изменены.
Параметры
info | объект GtkRecentInfo |
Возвращаемое значение
количество секунд, прошедших с эпохи системы, когда ресурс был в последний раз изменен, или -1 в случае ошибки.
С: 2.10
gtk_recent_info_get_visited ()
time_t
gtk_recent_info_get_visited (GtkRecentInfo *info); Получает отметку времени (секунды с эпохи системы), когда метаданные ресурса были посещены в последний раз.
Параметры
info |
Возвращаемое значение
количество секунд, прошедших с эпохи системы, когда ресурс был посещён в последний раз, или -1 при ошибке.
С версии: 2.10
gtk_recent_info_get_private_hint ()
gboolean
gtk_recent_info_get_private_hint (GtkRecentInfo *info); Получает значение флага «private». Ресурсы в списке недавно использованных, у которых этот флаг установлен в TRUE, должны отображаться только приложениями, которые их зарегистрировали.
Параметры
info |
С версии: 2.10
gtk_recent_info_get_application_info ()
gboolean gtk_recent_info_get_application_info (GtkRecentInfo *info,const gchar *app_name,const gchar **app_exec,guint *count,time_t *time_);
Получает данные о приложении, которое зарегистрировало ресурс, на который указывает info .
Если командная строка содержит какие-либо управляющие символы, определённые в спецификации хранения, они будут расширены.
Параметры
info | ||
app_name | имя приложения, которое зарегистрировало этот элемент | |
app_exec | место хранения строки, содержащей командную строку. | [transfer none][out] |
count | место хранения количества раз, когда этот элемент был зарегистрирован. | [out] |
time_ | место хранения отметки времени, когда этот элемент был последний раз зарегистрирован для данного приложения. | [out] |
Возвращаемое значение
TRUE, если приложение с именем app_name зарегистрировало данный ресурс в списке недавно использованных, или FALSE в противном случае. Строка app_exec принадлежит GtkRecentInfo и не должна изменяться или освобождаться.
С версии: 2.10
gtk_recent_info_get_applications ()
gchar ** gtk_recent_info_get_applications (GtkRecentInfo *info,gsize *length);
Возвращает список приложений, которые зарегистрировали данный ресурс.
Параметры
info | ||
length | место хранения длины возвращённого списка. | [out][allow-none] |
Возвращаемое значение
новая строка NULL-завершённого массива строк. Для освобождения используйте g_strfreev().
[array length=length zero-terminated=1][transfer full]
С версии: 2.10
gtk_recent_info_last_application ()
gchar *
gtk_recent_info_last_application (GtkRecentInfo *info); Получает имя последнего приложения, которое зарегистрировало недавно использованный ресурс, представленный info .
Параметры
info |
Возвращаемое значение
имя приложения. Для освобождения используйте g_free().
С версии: 2.10
gtk_recent_info_has-application ()
gboolean gtk_recent_info_has_application (GtkRecentInfo *info,const gchar *app_name);
Проверяет, зарегистрировало ли приложение этот ресурс с использованием app_name .
Параметры
info | ||
app_name | строка, содержащая имя приложения |
С версии: 2.10
gtk_recent_info_create_app-info ()
GAppInfo * gtk_recent_info_create_app_info (GtkRecentInfo *info,const gchar *app_name,GError **error);
Создаёт GAppInfo для указанного GtkRecentInfo
Параметры
Возвращаемое значение
созданный GAppInfo, или NULL. В случае ошибки, error будет установлен либо с GTK_RECENT_MANAGER_ERROR, либо с G_IO_ERROR.
[nullable][transfer full]
gtk_recent_info_get_groups ()
gchar ** gtk_recent_info_get_groups (GtkRecentInfo *info,gsize *length);
Возвращает все зарегистрированные группы для недавно используемого элемента info. Массив возвращаемых имён групп будет завершён NULL, поэтому длина может быть необязательно NULL.
Параметры
info | ||
length | место возврата количества возвращённых групп. | [out][allow-none] |
Возвращаемое значение
новый динамически выделенный NULL-завершённый массив строк. Используйте g_strfreev() для его освобождения.
[array length=length zero-terminated=1][transfer full]
С: 2.10
gtk_recent_info_has_group ()
gboolean gtk_recent_info_has_group (GtkRecentInfo *info,const gchar *group_name);
Проверяет, появляется ли group_name внутри групп, зарегистрированных для недавно используемого элемента info.
Параметры
info | ||
group_name | имя группы |
Возвращаемое значение
TRUE, если группа найдена
С: 2.10
gtk_recent_info_get_icon ()
GdkPixbuf * gtk_recent_info_get_icon (GtkRecentInfo *info,gint size);
Возвращает значок размера size, связанный с MIME-типом ресурса.
Параметры
info | ||
size | размер значка в пикселях |
Возвращаемое значение
GdkPixbuf содержащий значок или NULL. Используйте g_object_unref() после окончания использования значка.
[nullable][transfer full]
С: 2.10
gtk_recent_info_get_gicon ()
GIcon *
gtk_recent_info_get_gicon (GtkRecentInfo *info); Возвращает значок, связанный с MIME-типом ресурса.
Параметры
info |
Возвращаемое значение
GIcon содержащий значок, или NULL. Используйте g_object_unref() после окончания использования значка.
[nullable][transfer full]
С: 2.22
gtk_recent_info_get_short_name ()
gchar *
gtk_recent_info_get_short_name (GtkRecentInfo *info); Вычисляет допустимую строку UTF-8, которую можно использовать в качестве имени элемента в меню или списке. Например, вызов этой функции для элемента, ссылающегося на «file:///foo/bar.txt», вернёт «bar.txt».
Параметры
info |
Возвращаемое значение
Новый динамически выделенный строковый литерал в кодировке UTF-8, освободите его с помощью g_free()
С: 2.10
gtk_recent_info_get_uri_display ()
gchar *
gtk_recent_info_get_uri_display (GtkRecentInfo *info); Получает отображаемую версию URI ресурса. Если ресурс локальный, возвращает локальный путь; если ресурс не локальный, возвращает кодированное в UTF-8 содержимое gtk_recent_info_get_uri().
Параметры
info |
Возвращаемое значение
новый динамически выделенный строковый литерал UTF-8, содержащий URI ресурса, или NULL. Используйте g_free() при завершении использования.
[nullable]
С: 2.10
gtk_recent_info_get_age ()
gint
gtk_recent_info_get_age (GtkRecentInfo *info); Возвращает количество прошедших дней с момента последнего обновления ресурса, указанного info.
Параметры
info |
Возвращаемое значение
положительное целое число, содержащее количество прошедших дней с момента последнего изменения этого ресурса.
С: 2.10
gtk_recent_info_is_local ()
gboolean
gtk_recent_info_is_local (GtkRecentInfo *info); Проверяет, является ли ресурс локальным или нет, анализируя схему его URI.
Параметры
info |
Возвращаемое значение
TRUE, если ресурс локальный
С: 2.10
gtk_recent_info_exists ()
gboolean
gtk_recent_info_exists (GtkRecentInfo *info); Проверяет, существует ли ресурс, указанный info. В настоящее время эта проверка выполняется только для ресурсов, указывающих на локальные файлы.
Параметры
info |
Возвращаемое значение
TRUE, если ресурс существует
С: 2.10
gtk_recent_info_match ()
gboolean gtk_recent_info_match (GtkRecentInfo *info_a,GtkRecentInfo *info_b);
Проверяет, указывают ли два объекта GtkRecentInfo на один и тот же ресурс.
Параметры
info_a | объект GtkRecentInfo | |
info_b | объект GtkRecentInfo |
Возвращает
TRUE, если оба объекта GtkRecentInfo указывают на один и тот же ресурс, FALSE в противном случае
С: 2.10
Типы и значения
struct GtkRecentManager
struct GtkRecentManager;
Объект GtkRecentManager содержит только закрытые данные и должен использоваться через предоставленный API.
С: 2.10
GtkRecentInfo
typedef struct _GtkRecentInfo GtkRecentInfo;
Объект GtkRecentInfo содержит только закрытые данные и должен использоваться через предоставленный API.
GtkRecentInfo содержит всю метаданные, связанные с записью в списке недавно использованных файлов.
С: 2.10
struct GtkRecentData
struct GtkRecentData {
gchar *display_name;
gchar *description;
gchar *mime_type;
gchar *app_name;
gchar *app_exec;
gchar **groups;
gboolean is_private;
};
Метаданные, которые должны быть переданы в gtk_recent_manager_add_full() при регистрации недавно использованного ресурса.
Члены
gchar * | строка UTF-8, содержащая отображаемое имя недавно использованного ресурса, или | |
gchar * | строка UTF-8, содержащая краткое описание ресурса, или | |
gchar * | MIME-тип ресурса; | |
gchar * | имя приложения, регистрирующего этот недавно использованный ресурс; | |
gchar * | команда для запуска этого ресурса; может содержать символы экранирования «%f» и «%u», которые будут расширены до пути к файлу ресурса и URI соответственно при получении команды; | |
gchar ** | вектор строк, содержащих имена групп. | [array zero-terminated=1] |
gboolean | указывает, должен ли этот ресурс отображаться только приложениями, которые его зарегистрировали. |
GTK_RECENT_MANAGER_ERROR
#define GTK_RECENT_MANAGER_ERROR (gtk_recent_manager_error_quark ())
Домен GError для ошибок GtkRecentManager.
С: 2.10
перечисление GtkRecentManagerError
Коды ошибок для операций GtkRecentManager.
Члены
GTK_RECENT_MANAGER_ERROR_NOT_FOUND | указанный URI не существует в списке недавно использованных ресурсов. | |
GTK_RECENT_MANAGER_ERROR_INVALID_URI | указанный URI недействителен. | |
GTK_RECENT_MANAGER_ERROR_INVALID_ENCODING | переданная строка не закодирована в UTF-8. | |
GTK_RECENT_MANAGER_ERROR_NOT_REGISTERED | приложение не зарегистрировало указанный элемент. | |
GTK_RECENT_MANAGER_ERROR_READ | ошибка при чтении файла недавно использованных ресурсов. | |
GTK_RECENT_MANAGER_ERROR_WRITE | ошибка при записи файла недавно использованных ресурсов. | |
GTK_RECENT_MANAGER_ERROR_UNKNOWN | неопределённая ошибка. |
С: 2.10
Подробное описание свойств
Свойство “filename”
“filename” gchar *
Полный путь к файлу, используемому для хранения и чтения списка недавно использованных ресурсов
Флаги: Чтение / Запись / Только для создания
Значение по умолчанию: NULL
С: 2.10
Свойство “size”
“size” gint
Размер списка недавно использованных ресурсов.
Флаги: Только для чтения
Допустимые значения: >= -1
Значение по умолчанию: 0
С: 2.10
Подробное описание сигналов
Сигнал “changed”
void user_function (GtkRecentManager *recent_manager, gpointer user_data)
Выдаётся, когда менеджер недавно использованных ресурсов изменяет своё содержимое, либо вызовом gtk_recent_manager_add_item(), либо другим приложением.
Параметры
recent_manager | менеджер недавно использованных ресурсов | |
user_data | пользовательские данные, заданные при подключении обработчика сигнала. |
Флаги: Run First
С: 2.10
См. также
© 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/GtkRecentManager.html