Spec-Zone.ru › GTK 3.22

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, используется диалог выбора файла платформы. Когда приложение выполняется в защищённой среде без прямого доступа к файловой системе (например, Flatpak), GtkFileChooserNative может вызывать соответствующие API (порталы), чтобы пользователь мог выбрать файл и сделать его доступным для приложения.

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

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

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

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

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, добавленные с пользовательским фильтром.

Функции

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.22/gtk3-GtkFileChooserNative.html

Spec-Zone.ru

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