краткое описание#include <gtk/gtk.h> gtkfileselection; gtkwidget* gtk_file_selection_new (const gchar *title); void gtk_file_selection_set_filename (gtkfileselection *filesel, const gchar *filename); const gchar* gtk_file_selection_get_filename (gtkfileselection *filesel); void gtk_file_selection_complete (gtkfileselection *filesel, const gchar *pattern); void gtk_file_selection_show_fileop_buttons (gtkfileselection *filesel); void gtk_file_selection_hide_fileop_buttons (gtkfileselection *filesel); gchar** gtk_file_selection_get_selections (gtkfileselection *filesel); void gtk_file_selection_set_select_multiple (gtkfileselection *filesel, gboolean select_multiple); gboolean gtk_file_selection_get_select_multiple (gtkfileselection *filesel); иерархия объектовgobject +----ginitiallyunowned +----gtkobject +----gtkwidget +----gtkcontainer +----gtkbin +----gtkwindow +----gtkdialog +----gtkfileselection реализуемые интерфейсыgtkfileselection реализует atkimplementoriface. свойства"filename" gchararray : read / write "select-multiple" gboolean : read / write "show-fileops" gboolean : read / write описаниеgtkfileselection должен использоваться для получения от пользователя имени файла или каталога. он создаёт новое окно диалога содержащее список каталогов и список файлов соответствующих текущемму рабочему каталогу. файловой системой можно управлять используя список каталогов или выпадающее меню истории. альтернативно, клавиша tab может использоваться для дополнения используемого имени файла – как это обычно делается в текстовых редакторах таких как emacs и jed. диалоги выбора файла создаются с
помощью вызова имя файла по умолчанию может быть
установлено используя
используйте простые файловые операции; создание
каталога, удаление файла и переименование
файла, доступны из кнопок в верху диалога.
они могут быть скрыты используя
пример 1. получение имя файла от пользователя. /* виджет выбора файла и строка хранения выбранного имени файла */ void store_filename (gtkwidget *widget, gpointer user_data) { gtkwidget *file_selector = gtk_widget (user_data); const gchar *selected_filename; selected_filename = gtk_file_selection_get_filename (gtk_file_selection (file_selector)); g_print ("selected filename: %s\n", selected_filename); } void create_file_selection (void) { gtkwidget *file_selector; /* создаём селектор */ file_selector = gtk_file_selection_new ("please select a file for editing."); g_signal_connect (gtk_file_selection (file_selector)->ok_button, "clicked", g_callback (store_filename), file_selector); /* убеждаемся в закрытие диалога после нажатия кнопки пользователем. */ g_signal_connect_swapped (gtk_file_selection (file_selector)->ok_button, "clicked", g_callback (gtk_widget_destroy), file_selector); g_signal_connect_swapped (gtk_file_selection (file_selector)->cancel_button, "clicked", g_callback (gtk_widget_destroy), file_selector); /* отображаем диалог */ gtk_widget_show (file_selector); } деталиgtkfileselectiontypedef struct {
gtkwidget *dir_list;
gtkwidget *file_list;
gtkwidget *selection_entry;
gtkwidget *selection_text;
gtkwidget *main_vbox;
gtkwidget *ok_button;
gtkwidget *cancel_button;
gtkwidget *help_button;
gtkwidget *history_pulldown;
gtkwidget *history_menu;
glist *history_list;
gtkwidget *fileop_dialog;
gtkwidget *fileop_entry;
gchar *fileop_file;
gpointer cmpl_state;
gtkwidget *fileop_c_dir;
gtkwidget *fileop_del_file;
gtkwidget *fileop_ren_file;
gtkwidget *button_area;
gtkwidget *action_area;
} gtkfileselection; gtkfileselection структура содержит следующие gtkwidget поля:
gtk_file_selection_new ()gtkwidget* gtk_file_selection_new (const gchar *title); создаёт новый диалог выбора файла. по умолчанию он будет содержать gtktreeview текущемго рабочего каталога приложения и список файлов. присутствуют также операционные кнопки позволяющие пользователю создавать каталоги, удалять файлы или переименовывать их.
gtk_file_selection_set_filename ()void gtk_file_selection_set_filename (gtkfileselection *filesel, const gchar *filename);
устанавливает путь по умолчанию для
запроса файла. если следовательно может быть открыт запрос
текущемго рабочего каталога и без имени
файла, кодировка
gtk_file_selection_get_filename ()const gchar* gtk_file_selection_get_filename (gtkfileselection *filesel);
эта функция возвращает выбранное имя
файла в кодировке имен файлов glib. для
преобразования в utf-8, вызовите
если нет выбранного файла, то возвращается путь выбранного каталога.
gtk_file_selection_complete ()void gtk_file_selection_complete (gtkfileselection *filesel, const gchar *pattern);
попытается сопоставить
gtk_file_selection_show_fileop_buttons ()void gtk_file_selection_show_fileop_buttons (gtkfileselection *filesel); показывает кнопки файловых операций, если они предварительно были скрыты. остальная часть виджетов в диалоге соответственно изменяется.
gtk_file_selection_hide_fileop_buttons ()void gtk_file_selection_hide_fileop_buttons (gtkfileselection *filesel); скрывает кнопки файловых операций которые обычно появляются в верху диалога. может быть полезной, если вам понадобится создать измененный селектор файлов, основываясь на gtkfileselection.
gtk_file_selection_get_selections ()gchar** gtk_file_selection_get_selections (gtkfileselection *filesel); определяет список выбранных пользователем файлов в диалоговом окне. эта функция предназначена для использования при выборе пользователем множества файлов в списке. имя файла в кодировке имен файлов
glib. для преобразования в utf-8, вызовите
gtk_file_selection_set_select_multiple ()void gtk_file_selection_set_select_multiple (gtkfileselection *filesel, gboolean select_multiple);
устанавливает позволен ли пользователю
множественный выбор файлов в списке.
используйте
gtk_file_selection_get_select_multiple ()gboolean gtk_file_selection_get_select_multiple (gtkfileselection *filesel);
определяет может ли пользователь
выбирать множество файлов в списке или
нет. смотрите
детали свойствсвойство "
|
добавьте ваши собственные виджеты в gtkfileselection. |