Spec-Zone.ru › GTK 3.24

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

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

#include <gtk/gtk.h>

Описание

GtkFileChooserNative — это абстракция диалогового окна, подходящая для команд «Файл/Открыть» или «Файл/Сохранить как». По умолчанию, для реализации самого диалогового окна используется GtkFileChooserDialog. Однако на некоторых платформах, таких как Windows и macOS, используется собственный файловый диалог платформы. Когда приложение работает в защищённой среде без прямого доступа к файловой системе (например, в Flatpak), GtkFileChooserNative может вызывать соответствующие API (порталы), чтобы пользователь мог выбрать файл и сделать его доступным для приложения.

Хотя API GtkFileChooserNative тесно связан с GtkFileChooserDialog, основное отличие заключается в том, что нет доступа к любому GtkWindow или GtkWidget для диалогового окна. Это необходимо, так как на некоторых платформах может не быть диалогового окна. Показ, скрытие и запуск диалогового окна обрабатываются функциями GtkNativeDialog.

Типичное использование

В простейшем случае, для выбора файла для открытия можно использовать следующий код:

Для использования диалогового окна для сохранения можно использовать этот код:

GtkFileChooserNative *native;
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
gint res;

native = gtk_file_chooser_native_new ("Open File",
                                      parent_window,
                                      action,
                                      "_Open",
                                      "_Cancel");

res = gtk_native_dialog_run (GTK_NATIVE_DIALOG (native));
if (res == GTK_RESPONSE_ACCEPT)
  {
    char *filename;
    GtkFileChooser *chooser = GTK_FILE_CHOOSER (native);
    filename = gtk_file_chooser_get_filename (chooser);
    open_file (filename);
    g_free (filename);
  }

g_object_unref (native);

Более подробную информацию о том, как лучше настроить диалог выбора файла, см. в документации GtkFileChooserDialog.

Коды ответов

GtkFileChooserNative наследуется от GtkNativeDialog, что означает, что он вернёт GTK_RESPONSE_ACCEPT, если пользователь принял, и GTK_RESPONSE_CANCEL, если он нажал «Отмена». Также может вернуть GTK_RESPONSE_DELETE_EVENT, если окно было неожиданно закрыто.

Отличия от GtkFileChooserDialog

Существуют некоторые функции API GtkFileChooser, которые нельзя использовать с GtkFileChooserNative, поскольку это запретит использование собственного диалогового окна.

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

  • «current-folder-changed»

  • «selection-changed»

  • «file-activated»

  • «confirm-overwrite»

Также нельзя использовать методы, которые непосредственно управляют навигацией пользователя:

  • gtk_file_chooser_unselect_filename()

  • gtk_file_chooser_select_all()

  • gtk_file_chooser_unselect_all()

Если вам нужны вышеперечисленные функции, придётся использовать GtkFileChooserDialog напрямую.

Никакие операции, изменяющие диалоговое окно, не работают, пока диалоговое окно отображается. Установите все необходимые свойства перед отображением диалогового окна.

Подробности для Win32

В Windows используется реализация IFileDialog (добавлена в Windows Vista). Она поддерживает многие функции, которые предоставляет GtkFileChooserDialog, но есть и исключения:

  • Дополнительные виджеты, добавленные с помощью gtk_file_chooser_set_extra_widget().

  • Использование пользовательских превью, подключившись к «update-preview».

  • Любой GtkFileFilter, добавленный с использованием MIME-типов или пользовательского фильтра.

Если используются какие-либо из этих функций, то вместо родного диалогового окна будет использоваться обычный GtkFileChooserDialog.

Подробности портала

Когда портал org.freedesktop.portal.FileChooser доступен на шине сеанса, он используется для вывода диалогового окна выбора файла вне процесса. В зависимости от типа сеанса, в котором запущено приложение, это может быть или не быть диалоговым окном GTK+. В этой ситуации следующие вещи не поддерживаются и будут проигнорированы:

  • Дополнительные виджеты, добавленные с помощью gtk_file_chooser_set_extra_widget().

  • Использование пользовательских превью, подключившись к «update-preview».

  • Любой GtkFileFilter, добавленный с пользовательским фильтром.

Подробности для macOS

В macOS используются классы NSSavePanel и NSOpenPanel для предоставления собственных диалоговых окон выбора файла. Некоторые функции, предоставляемые GtkFileChooserDialog, не поддерживаются:

  • Дополнительные виджеты, добавленные с помощью gtk_file_chooser_set_extra_widget(), если виджет не является экземпляром GtkLabel, в этом случае текст метки используется для установки свойства экземпляра NSSavePanel message.

  • Использование пользовательских превью, подключившись к «update-preview».

  • Любой GtkFileFilter, добавленный с пользовательским фильтром.

  • Папки ярлыков.

Функции

gtk_file_chooser_native_new ()

GtkFileChooserNative *
gtk_file_chooser_native_new (const gchar *title,
                             GtkWindow *parent,
                             GtkFileChooserAction action,
                             const gchar *accept_label,
                             const gchar *cancel_label);

Создаёт новый GtkFileChooserNative.

Параметры

title

Заголовок диалогового окна, или NULL.

[allow-none]

parent

Родительское диалоговое окно, или NULL.

[allow-none]

action

Режим диалогового окна (открытие или сохранение)

accept_label

Текст для кнопки «Принять», или NULL по умолчанию.

[allow-none]

cancel_label

Текст для кнопки «Отмена», или NULL по умолчанию.

[allow-none]

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

новый GtkFileChooserNative

С: 3.20

gtk_file_chooser_native_get_accept_label ()

const char *
gtk_file_chooser_native_get_accept_label
                               (GtkFileChooserNative *self);

Получает текст пользовательской надписи для кнопки «Принять».

Параметры

self

объект GtFileChooserNative

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

Пользовательская надпись, или NULL по умолчанию. Эта строка принадлежит GTK+ и не должна изменяться или освобождаться.

[nullable]

С: 3.20

gtk_file_chooser_native_set_accept_label ()

void
gtk_file_chooser_native_set_accept_label
                               (GtkFileChooserNative *self,
                                const char *accept_label);

Устанавливает пользовательский текст для кнопки «Принять».

Если символы в label предваряются нижним подчеркиванием, они подчеркиваются. Если вам нужен буквальный символ нижнего подчеркивания в метке, используйте «__» (два нижних подчеркивания). Первый подчеркнутый символ представляет собой ярлык клавиатуры, называемый мнемоникой. Нажатие клавиши Alt и этой клавиши активирует кнопку.

Параметры

self

объект GtFileChooserNative

accept_label

пользовательская метка или NULL по умолчанию.

[allow-none]

С: 3.20

gtk_file_chooser_native_get_cancel_label ()

const char *
gtk_file_chooser_native_get_cancel_label
                               (GtkFileChooserNative *self);

Получает пользовательский текст для кнопки «Отмена».

Параметры

self

объект GtFileChooserNative

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

Пользовательская надпись, или NULL по умолчанию. Эта строка принадлежит GTK+ и не должна изменяться или освобождаться.

[nullable]

С: 3.20

gtk_file_chooser_native_set_cancel_label ()

void
gtk_file_chooser_native_set_cancel_label
                               (GtkFileChooserNative *self,
                                const char *cancel_label);

Устанавливает пользовательский текст для кнопки «Отмена».

Если символы в label предваряются нижним подчеркиванием, они подчеркиваются. Если вам нужен буквальный символ нижнего подчеркивания в метке, используйте «__» (два нижних подчеркивания). Первый подчеркнутый символ представляет собой ярлык клавиатуры, называемый мнемоникой. Нажатие клавиши Alt и этой клавиши активирует кнопку.

Параметры

self

объект GtFileChooserNative

cancel_label

пользовательская метка или NULL по умолчанию.

[allow-none]

С: 3.20

См. также

GtkFileChooser, GtkNativeDialog, GtkFileChooserDialog

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

Spec-Zone.ru

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