GtkFileChooserNative
GtkFileChooserNative — Диалоговое окно выбора файла, подходящее для команд «Открыть файл» или «Сохранить файл»
Функции
| GtkFileChooserNative * | gtk_file_chooser_native_new () |
| const char * | gtk_file_chooser_native_get_accept_label () |
| void | gtk_file_chooser_native_set_accept_label () |
| const char * | gtk_file_chooser_native_get_cancel_label () |
| void | gtk_file_chooser_native_set_cancel_label () |
Свойства
| char * | accept-label | Чтение / Запись |
| char * | cancel-label | Чтение / Запись |
Типы и значения
Иерархия объектов
GObject
╰── GtkNativeDialog
╰── GtkFileChooserNative
Реализованные интерфейсы
GtkFileChooserNative реализует GtkFileChooser.
Файлы заголовков
#include <gtk/gtk.h>
Описание
GtkFileChooserNative — это абстракция диалогового окна, подходящая для команд «Открыть файл» или «Сохранить как». По умолчанию для реализации диалогового окна используется GtkFileChooserDialog. Однако на некоторых платформах, таких как Windows и macOS, используется собственное диалоговое окно выбора файла платформы. Когда приложение запущено в среде с песочницей без прямого доступа к файловой системе (например, Flatpak), GtkFileChooserNative может вызывать соответствующие API (порталы), чтобы позволить пользователю выбрать файл и сделать его доступным для приложения.
Хотя API GtkFileChooserNative тесно связан с GtkFileChooserDialog, основное различие заключается в том, что нет доступа к GtkWindow или GtkWidget диалогового окна. Это необходимо, так как на некоторых платформах диалоговое окно может быть нестандартным.
Отображение, скрытие и запуск диалогового окна обрабатываются функциями GtkNativeDialog.
Обратите внимание, что в отличие от GtkFileChooserDialog, объекты GtkFileChooserNative не являются виджетами верхнего уровня, и GTK не сохраняет их активность. Вы несете ответственность за сохранение ссылки до тех пор, пока вам не понадобится этот объект.
Типичное использование
В простейшем случае вы можете использовать следующий код для использования GtkFileChooserDialog для выбора файла для открытия:
Для использования диалога для сохранения вы можете использовать это:
static void
on_response (GtkNativeDialog *native,
int response)
{
if (response == GTK_RESPONSE_ACCEPT)
{
GtkFileChooser *chooser = GTK_FILE_CHOOSER (native);
GFile *file = gtk_file_chooser_get_file (chooser);
open_file (file);
g_object_unref (file);
}
g_object_unref (native);
}
// ...
GtkFileChooserNative *native;
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
native = gtk_file_chooser_native_new ("Open File",
parent_window,
action,
"_Open",
"_Cancel");
g_signal_connect (native, "response", G_CALLBACK (on_response), NULL);
gtk_native_dialog_show (GTK_NATIVE_DIALOG (native));Для получения дополнительной информации о том, как лучше настроить диалоговое окно выбора файла, см. GtkFileChooserDialog.
Коды ответов
GtkFileChooserNative унаследован от GtkNativeDialog, что означает, что он вернёт GTK_RESPONSE_ACCEPT, если пользователь подтвердил, и GTK_RESPONSE_CANCEL, если он нажал отмену. Он также может вернуть GTK_RESPONSE_DELETE_EVENT, если окно было неожиданно закрыто.
Отличия от GtkFileChooserDialog
Есть несколько вещей в API GtkFileChooser, которые нельзя использовать с GtkFileChooserNative, так как такое использование запретит использование собственного диалогового окна.
Никакие операции, изменяющие диалоговое окно, не выполняются, пока диалоговое окно не будет отображено. Установите все необходимые свойства перед отображением диалогового окна.
Подробности Win32
В Windows используется реализация IFileDialog (добавлена в Windows Vista). Она поддерживает многие функции, которые поддерживает GtkFileChooserDialog, но есть и некоторые ограничения:
Любые GtkFileFilter, добавленные с помощью MIME-типа.
Если используется любая из этих функций, в качестве замены будет использоваться обычное диалоговое окно GtkFileChooserDialog.
Подробности портала
Когда доступен портал org.freedesktop.portal.FileChooser на шине сеанса, он используется для вызова диалогового окна выбора файла вне процесса. В зависимости от типа сеанса, в котором запущено приложение, это может быть или не быть диалоговым окном GTK.
Подробности macOS
В macOS используются классы NSSavePanel и NSOpenPanel для предоставления собственных диалоговых окон выбора файла. Некоторые функции, предоставляемые GtkFileChooserDialog, не поддерживаются:
Папки с ярлыками.
Функции
gtk_file_chooser_native_new ()
GtkFileChooserNative * gtk_file_chooser_native_new (const char *title,GtkWindow *parent,GtkFileChooserAction action,const char *accept_label,const char *cancel_label);
Создаёт новый GtkFileChooserNative.
Параметры
title | Заголовок окна, или | [allow-none] |
parent | Родительское окно, или | [allow-none] |
action | Режим диалога: открыть или сохранить | |
accept_label | Текст для кнопки "Принять", или | [allow-none] |
cancel_label | Текст для кнопки "Отмена", или | [allow-none] |
Возвращаемое значение
новый GtkFileChooserNative
gtk_file_chooser_native_get_accept_label ()
const char *
gtk_file_chooser_native_get_accept_label
(GtkFileChooserNative *self); Возвращает пользовательский текст для кнопки "Принять".
Параметры
self |
Возвращаемое значение
Пользовательский текст, или NULL по умолчанию. Эта строка принадлежит GTK+ и не должна изменяться или освобождаться.
[nullable]
gtk_file_chooser_native_set_accept_label ()
void gtk_file_chooser_native_set_accept_label (GtkFileChooserNative *self,const char *accept_label);
Устанавливает пользовательский текст для кнопки "Принять".
Если символы в label предваряются подчёркиванием, они подчеркиваются. Если вам нужен буквальный символ подчёркивания в метке, используйте "__(два подчёркивания)". Первая подчёркнутая буква представляет собой клавишу быстрого доступа, называемую мнемоникой. Нажатие Alt и этой клавиши активирует кнопку.
Параметры
self | ||
accept_label | Пользовательский текст или | [allow-none] |
gtk_file_chooser_native_get_cancel_label ()
const char *
gtk_file_chooser_native_get_cancel_label
(GtkFileChooserNative *self); Возвращает пользовательский текст для кнопки "Отмена".
Параметры
self |
Возвращаемое значение
Пользовательский текст, или NULL по умолчанию. Эта строка принадлежит GTK+ и не должна изменяться или освобождаться.
[nullable]
gtk_file_chooser_native_set_cancel_label ()
void gtk_file_chooser_native_set_cancel_label (GtkFileChooserNative *self,const char *cancel_label);
Устанавливает пользовательский текст для кнопки "Отмена".
Если символы в label предваряются подчёркиванием, они подчеркиваются. Если вам нужен буквальный символ подчёркивания в метке, используйте "__(два подчёркивания)". Первая подчёркнутая буква представляет собой клавишу быстрого доступа, называемую мнемоникой. Нажатие Alt и этой клавиши активирует кнопку.
Параметры
self | ||
cancel_label | Пользовательский текст или | [allow-none] |
Типы и значения
GtkFileChooserNative
typedef struct _GtkFileChooserNative GtkFileChooserNative;
Свойства
Свойство “accept-label”
“accept-label” char *
Текст для метки кнопки "Принять" в диалоговом окне, или NULL по умолчанию.
Владелец: GtkFileChooserNative
Флаги: Чтение / Запись
Значение по умолчанию: NULL
Свойство “cancel-label”
“cancel-label” char *
Текст для метки кнопки "Отмена" в диалоговом окне, или NULL по умолчанию.
Владелец: GtkFileChooserNative
Флаги: Чтение / Запись
Значение по умолчанию: NULL
См. также
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/GtkFileChooserNative.html