The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа

Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy

GtkFileFilter

GtkFileFilter Фильтр для выбора подмножества файлов

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

#include <gtk/gtk.h>


            GtkFileFilter;
            GtkFileFilterInfo;
enum        GtkFileFilterFlags;
gboolean    (*GtkFileFilterFunc)            (const GtkFileFilterInfo *filter_info,
                                             gpointer data);

GtkFileFilter* gtk_file_filter_new          (void);
void        gtk_file_filter_set_name        (GtkFileFilter *filter,
                                             const gchar *name);
const gchar* gtk_file_filter_get_name       (GtkFileFilter *filter);
void        gtk_file_filter_add_mime_type   (GtkFileFilter *filter,
                                             const gchar *mime_type);
void        gtk_file_filter_add_pattern     (GtkFileFilter *filter,
                                             const gchar *pattern);
void        gtk_file_filter_add_pixbuf_formats

                                            (GtkFileFilter *filter);
void        gtk_file_filter_add_custom      (GtkFileFilter *filter,
                                             GtkFileFilterFlags needed,
                                             GtkFileFilterFunc func,
                                             gpointer data,
                                             GDestroyNotify notify);

GtkFileFilterFlags gtk_file_filter_get_needed
                                            (GtkFileFilter *filter);
gboolean    gtk_file_filter_filter          (GtkFileFilter *filter,
                                             const GtkFileFilterInfo *filter_info);


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

  GObject
   +----GInitiallyUnowned
         +----GtkObject

               +----GtkFileFilter

Описание

GtkFileFilter может использоваться для ограничения показываемых файлов в GtkFileChooser. Файлы могут фильтроваться по имени (с помощью gtk_file_filter_add_pattern()), по mime типу (с помощью gtk_file_filter_add_mime_type()), или выборочно (с помощью gtk_file_filter_add_custom()).

Фильтрация mime типов обрабатывает связи и подклассы mime типов; например фильтр для text/plain также означает файлы с mime типом application/rtf, так как application/rtf это подкласс text/plain. Помните что GtkFileFilter допускает шаблоны для подтипов mime типа, таким образом вы можете использовать например фильтр image/*.

Обычно, фильтры используются добавляя их к GtkFileChooser, смотрите gtk_file_chooser_add_filter(), но так же возможно самостоятельное использование фильтров с помощью gtk_file_filter_filter().

Детали

GtkFileFilter

typedef struct _GtkFileFilter GtkFileFilter;

Структура GtkFileFilter содержит только закрытые данные и не должна использоваться непосредственно.


GtkFileFilterInfo

typedef struct {
  GtkFileFilterFlags contains;
  
  const gchar *filename;
  const gchar *uri;
  const gchar *display_name;
  const gchar *mime_type;
} GtkFileFilterInfo;

Структура GtkFileFilterInfo используется для размещения информации о проверяемом файле в gtk_file_filter_filter().

GtkFileFilterFlags contains;

Флаг указывающий какие из следующих полей являются заполненными

const gchar *filename;

Имя проверяемого файла

const gchar *uri;

URI проверяемого файла

const gchar *display_name;

Строка используемая для отображения файла в селекторе файлов

const gchar *mime_type;

mime тип файла


enum GtkFileFilterFlags

typedef enum {
  GTK_FILE_FILTER_FILENAME     = 1 << 0,
  GTK_FILE_FILTER_URI          = 1 << 1,
  GTK_FILE_FILTER_DISPLAY_NAME = 1 << 2,
  GTK_FILE_FILTER_MIME_TYPE    = 1 << 3
} GtkFileFilterFlags;

Эти флажки указывают какая часть структуры GtkFileFilterInfo заполнена или нуждается в заполнении.

GTK_FILE_FILTER_FILENAME

Имя проверяемого файла

GTK_FILE_FILTER_URI

URI проверяемого файла

GTK_FILE_FILTER_DISPLAY_NAME

Строка используемая для отображения файла в селекторе файлов

GTK_FILE_FILTER_MIME_TYPE

mime тип файла


GtkFileFilterFunc ()

gboolean    (*GtkFileFilterFunc)            (const GtkFileFilterInfo *filter_info,
                                             gpointer data);

Тип функции которая используется для выборочной фильтрации, смотрите gtk_file_filter_add_custom().

filter_info :

GtkFileFilterInfo которая заполняется согласно needed флажкам помещённым в gtk_file_filter_add_custom()

data :

Пользовательские данные помещаемые в gtk_file_filter_add_custom()

Возвращает :

TRUE если файл должен отображаться


gtk_file_filter_new ()

GtkFileFilter* gtk_file_filter_new          (void);

Создаёт новый GtkFileFilter без добавленных в него правил. Такой фильтр отвергает все файлы, поэтому бесполезен без добавления правил с помощью gtk_file_filter_add_mime_type(), gtk_file_filter_add_pattern(), или gtk_file_filter_add_custom(). Для создания фильтра разрешающего отображение всех файлов используйте:

GtkFileFilter *filter = gtk_file_filter_new ();
gtk_file_filter_add_pattern (filter, "*");

Возвращает :

новый GtkFileFilter

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


gtk_file_filter_set_name ()

void        gtk_file_filter_set_name        (GtkFileFilter *filter,
                                             const gchar *name);

Устанавливает, удобное для чтения пользователем, имя фильтра; это строка которая будет отображаться в интерфейсе селектора файлов, если есть список выбираемых фильтров.

filter :

GtkFileFilter

name :

Имя фильтра в удобочитаемом виде, или NULL для удаления любого существующего имени.

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


gtk_file_filter_get_name ()

const gchar* gtk_file_filter_get_name       (GtkFileFilter *filter);

Определяет читабельное имя фильтра. Смотрите gtk_file_filter_set_name().

filter :

GtkFileFilter

Возвращает :

Читабельное имя фильтра, или NULL. Этим значением владеет GTK+ и оно не должно изменяться или освобождаться.

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


gtk_file_filter_add_mime_type ()

void        gtk_file_filter_add_mime_type   (GtkFileFilter *filter,
                                             const gchar *mime_type);

Добавляет правило позволяющее полученный mime тип для filter.

filter :

GtkFileFilter

mime_type :

имя MIME типа

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


gtk_file_filter_add_pattern ()

void        gtk_file_filter_add_pattern     (GtkFileFilter *filter,
                                             const gchar *pattern);

Добавляет правило позволяющее общий стиль оболочки для фильтра.

filter :

GtkFileFilter

pattern :

Общий стиль оболочки

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


gtk_file_filter_add_pixbuf_formats ()

void        gtk_file_filter_add_pixbuf_formats
                                            (GtkFileFilter *filter);

Добавляет правило допускающее файлы изображения в формате поддерживаемом GdkPixbuf.

filter :

GtkFileFilter

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


gtk_file_filter_add_custom ()

void        gtk_file_filter_add_custom      (GtkFileFilter *filter,
                                             GtkFileFilterFlags needed,
                                             GtkFileFilterFunc func,
                                             gpointer data,
                                             GDestroyNotify notify);

Добавляет правило к фильтру позволяющему файлы основываясь на выборочной функции. Логическое поле needed помещается для обеспечения информации в которой нуждается функция фильтрации; это позволяет GTK+ избегать ненужной для фильтра информации.

filter :

GtkFileFilter

needed :

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

func :

callback-функция; если функция возвращает TRUE, то файл должен отображаться.

data :

Данные помещаемые в func

notify :

Функция вызываемая для освобождения data когда они больше не нужны.

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


gtk_file_filter_get_needed ()

GtkFileFilterFlags gtk_file_filter_get_needed
                                            (GtkFileFilter *filter);

Определяет поля необходимые для заполнения в структуре помещаемой в gtk_file_filter_filter()

Эта функция обычно не будет использоваться в приложениях; она предназначена преимущественно для использования в реализации GtkFileChooser.

filter :

GtkFileFilter

Возвращает :

Логическое поле флажков указывающих необходимые поля для вызова gtk_file_filter_filter()

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


gtk_file_filter_filter ()

gboolean    gtk_file_filter_filter          (GtkFileFilter *filter,
                                             const GtkFileFilterInfo *filter_info);

Проверяет должен ли отображаться файл согласно filter. GtkFileFilterInfo структура filter_info должна включать поля возвращаемые из gtk_file_filter_get_needed().

Эта функция обычно не будет использоваться в приложениях; она предназначена преимущественно для использования в реализации GtkFileChooser.

filter :

GtkFileFilter

filter_info :

GtkFileFilterInfo структура содержащая информацию о файле.

Возвращает :

TRUE если файл должен отображаться

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

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

GtkFileChooser




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру