Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |  Implemented Interfaces

GtkFileChooserDialog

GtkFileChooserDialog Диалог выбора файлов, подходящий для использования командами "File/Open" или "File/Save"

Краткое описание

#include <gtk/gtk.h> GtkFileChooserDialog; GtkWidget* gtk_file_chooser_dialog_new (const gchar *title, GtkWindow *parent, GtkFileChooserAction action, const gchar *first_button_text, ...); GtkWidget* gtk_file_chooser_dialog_new_with_backend (const gchar *title, GtkWindow *parent, GtkFileChooserAction action, const gchar *backend, const gchar *first_button_text, ...);

Иерархия объектов

GObject +----GInitiallyUnowned +----GtkObject +----GtkWidget +----GtkContainer +----GtkBin +----GtkWindow +----GtkDialog +----GtkFileChooserDialog

Реализуемые интерфейсы

GtkFileChooserDialog реализует GtkFileChooser и AtkImplementorIface.

Описание

GtkFileChooserDialog это диалоговое окно подходящее для использования с командами "File/Open" и "File/Save as". Этот виджет работает размещая GtkFileChooserWidget внутри GtkDialog. Он задействует интерфейс GtkFileChooserIface, поэтому вы можете использовать все функции GtkFileChooser в диалоге выбора файлов так же как и для GtkDialog.

Помните что GtkFileChooserDialog не имеет собственных методов. Вместо них, вы должны использовать функции работающие в GtkFileChooser.

Пример 7. Обычное использование

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

GtkWidget *dialog; dialog = gtk_file_chooser_dialog_new ("Open File", parent_window, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { char *filename; filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); open_file (filename); g_free (filename); } gtk_widget_destroy (dialog);

Для сохранения с помощью диалога используйте это:

GtkWidget *dialog; dialog = gtk_file_chooser_dialog_new ("Save File", parent_window, GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL); gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE); if (user_edited_a_new_document) { gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), default_folder_for_saving); gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), "Untitled document"); } else gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog), filename_for_existing_document); if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { char *filename; filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); save_to_file (filename); g_free (filename); } gtk_widget_destroy (dialog);

Коды ответов

GtkFileChooserDialog наследует GtkDialog, поэтому кнопки входящие в его область действий имеют коды ответов такие как GTK_RESPONSE_ACCEPT и GTK_RESPONSE_CANCEL. Например, вы можете вызвать gtk_file_chooser_dialog_new() следующим образом:

GtkWidget *dialog; dialog = gtk_file_chooser_dialog_new ("Open File", parent_window, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL);

Это создаёт кнопки "Cancel" и "Open" которые используют заготовленные идентификаторы ответов из GtkResponseType. Для большинства диалоговых окон вы можете использовать собственные коды ответов вместо определённых в GtkResponseType, но GtkFileChooserDialog предполагает что его действия типа "accept", например кнопка "Open" или "Save", будет иметь один из следующих кодов ответа:

GTK_RESPONSE_ACCEPT

GTK_RESPONSE_OK

GTK_RESPONSE_YES

GTK_RESPONSE_APPLY

Это потому, что GtkFileChooserDialog должен перехватывать ответы и переключаться к каталогам если определены, не позволяя диалогу завершиться реализуя использование известных кодов ответа, чтобы знать какие ответы могут быть заблокированы если определены.

Примечание

Для суммирования, убедитесь что вы используете stock response code при использовании GtkFileChooserDialog, чтобы гарантировать надлежащую опрерацию.

Детали

GtkFileChooserDialog

typedef struct _GtkFileChooserDialog GtkFileChooserDialog;

gtk_file_chooser_dialog_new ()

GtkWidget* gtk_file_chooser_dialog_new (const gchar *title, GtkWindow *parent, GtkFileChooserAction action, const gchar *first_button_text, ...);

Создаёт новый GtkFileChooserDialog. Эта функция аналогична gtk_dialog_new_with_buttons().

title :

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

parent :

Переходный родитель диалога, или NULL

action :

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

first_button_text :

ID заготовки или текст помещаемый в первую кнопку, или NULL

... :

ID ответа для первой кнопки, затем дополнительные пары (button, id), заканчивается NULL

Возвращает :

новый GtkFileChooserDialog

Начиная с версии 2.4


gtk_file_chooser_dialog_new_with_backend ()

GtkWidget* gtk_file_chooser_dialog_new_with_backend (const gchar *title, GtkWindow *parent, GtkFileChooserAction action, const gchar *backend, const gchar *first_button_text, ...);

Создаёт новый GtkFileChooserDialog с определённым внутренним элементом (backend). Это особенно полезно, если вы используете gtk_file_chooser_set_local_only() для разрешения не локальных файлов и вы используете более отчетливый vfs, такой как gnome-vfs, для загрузки файлов.

title :

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

parent :

Переходный родитель диалога, или NULL

action :

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

backend :

Имя определенного элемента файловой системы для использования.

first_button_text :

ID заготовки или текст помещаемый в первую кнопку, или NULL

... :

ID ответа для первой кнопки, затем дополнительные пары (button, id), заканчивается NULL

Возвращает :

новый GtkFileChooserDialog

Начиная с версии 2.4

Смотрите также

GtkFileChooser, GtkDialog