краткое описание#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.
например, вы можете вызвать
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", будет иметь один из следующих кодов ответа: это потому, что gtkfilechooserdialog должен перехватывать ответы и переключаться к каталогам если определены, не позволяя диалогу завершиться — реализуя использование известных кодов ответа, чтобы знать какие ответы могут быть заблокированы если определены. примечаниедля суммирования, убедитесь что вы используете stock response code при использовании gtkfilechooserdialog, чтобы гарантировать надлежащую опрерацию. деталиgtkfilechooserdialogtypedef 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. эта
функция аналогична
начиная с версии 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). это особенно полезно, если вы
используете
начиная с версии 2.4 смотрите также |