Spec-Zone.ru › GTK 3.24

GtkCssProvider

GtkCssProvider — стилизация виджетов по принципу CSS

Функции

GtkCssProvider * gtk_css_provider_get_default ()
GtkCssProvider * gtk_css_provider_get_named ()
gboolean gtk_css_provider_load_from_data ()
gboolean gtk_css_provider_load_from_file ()
gboolean gtk_css_provider_load_from_path ()
void gtk_css_provider_load_from_resource ()
GtkCssProvider * gtk_css_provider_new ()
char * gtk_css_provider_to_string ()
guint gtk_css_section_get_end_line ()
guint gtk_css_section_get_end_position ()
GFile * gtk_css_section_get_file ()
GtkCssSection * gtk_css_section_get_parent ()
GtkCssSectionType gtk_css_section_get_section_type ()
guint gtk_css_section_get_start_line ()
guint gtk_css_section_get_start_position ()
GtkCssSection * gtk_css_section_ref ()
void gtk_css_section_unref ()

Сигналы

void parsing-error Run Last

Типы и значения

struct GtkCssProvider
#define GTK_CSS_PROVIDER_ERROR
enum GtkCssProviderError
GtkCssSection
enum GtkCssSectionType

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

    GBoxed
    ╰── GtkCssSection
    GObject
    ╰── GtkCssProvider

Реализованные интерфейсы

GtkCssProvider реализует GtkStyleProvider и GtkStyleProviderPrivate.

Файлы заголовков

#include <gtk/gtk.h>

Описание

GtkCssProvider — объект, реализующий интерфейс GtkStyleProvider. Он позволяет парсить ввод в формате, подобном CSS, для стилизации виджетов.

Приложение может заставить GTK+ разобрать определенный файл стилей CSS, вызвав gtk_css_provider_load_from_file() или gtk_css_provider_load_from_resource() и добавив провайдер с помощью gtk_style_context_add_provider() или gtk_style_context_add_provider_for_screen().

Кроме того, при инициализации GTK+ будут считываться определенные файлы. В первую очередь загружается файл $XDG_CONFIG_HOME/gtk-3.0/gtk.css если он существует. Затем GTK+ загружает первый существующий файл среди XDG_DATA_HOME/themes/THEME/gtk-VERSION/gtk.css, $HOME/.themes/THEME/gtk-VERSION/gtk.css, $XDG_DATA_DIRS/themes/THEME/gtk-VERSION/gtk.css и DATADIR/share/themes/THEME/gtk-VERSION/gtk.css, где THEME — имя текущей темы (см. настройку “gtk-theme-name”), DATADIR — префикс, настроенный при компиляции GTK+ (если не переопределен переменной среды GTK_DATA_PREFIX) и VERSION — номер версии GTK+.

Аналогичным образом, GTK+ пытается загрузить файл gtk-keys.css для текущей темы ключей, определенной настройкой “gtk-key-theme-name”.

Функции

gtk_css_provider_get_default ()

GtkCssProvider *
gtk_css_provider_get_default (void);

gtk_css_provider_get_default устарела с версии 3.24 и не должна использоваться в новом коде.

Используйте gtk_css_provider_new() вместо этого.

Возвращает провайдер, содержащий параметры стиля, используемые по умолчанию для всех виджетов.

Возвращает

Провайдер, используемый для стилизации по умолчанию. Эта память принадлежит GTK+ и не должна освобождаться вами.

[transfer none]

gtk_css_provider_get_named ()

GtkCssProvider *
gtk_css_provider_get_named (const gchar *name,
                            const gchar *variant);

Загружает тему из обычных путей тем.

Параметры

name

Имя темы

variant

Вариант для загрузки, например, "dark", или NULL для значения по умолчанию.

[allow-none]

Возвращает

объект GtkCssProvider с загруженной темой. Эта память принадлежит GTK+ и не должна освобождаться вами.

[transfer none]

gtk_css_provider_load_from_data ()

gboolean
gtk_css_provider_load_from_data (GtkCssProvider *css_provider,
                                 const gchar *data,
                                 gssize length,
                                 GError **error);

Загружает data в css_provider и при этом очищает любые ранее загруженные данные.

Параметры

css_provider

объект GtkCssProvider

data

Данные CSS, загруженные в память.

[array length=length][element-type guint8]

length

длина data в байтах или -1 для строк с нулевым завершением. Если length не равно -1, код предположит, что это не строка с нулевым завершением, и потенциально сделает копию.

error

место для возврата GError, или NULL.

[out][allow-none]

Возвращает

TRUE. Значение возврата устарело, и FALSE будет возвращено только по причинам обратной совместимости, если error не NULL и произошла ошибка загрузки. Для отслеживания ошибок при загрузке CSS, подключитесь к сигналу “parsing-error”.

gtk_css_provider_load_from_file ()

gboolean
gtk_css_provider_load_from_file (GtkCssProvider *css_provider,
                                 GFile *file,
                                 GError **error);

Загружает данные из файла file в css_provider, очищая любые ранее загруженные данные.

Параметры

css_provider

объект GtkCssProvider

file

GFile указатель на файл для загрузки

error

место для возврата GError, или NULL.

[out][allow-none]

Возвращает

TRUE. Значение возврата устарело, и FALSE будет возвращено только по причинам обратной совместимости, если error не NULL и произошла ошибка загрузки. Для отслеживания ошибок при загрузке CSS, подключитесь к сигналу “parsing-error”.

gtk_css_provider_load_from_path ()

gboolean
gtk_css_provider_load_from_path (GtkCssProvider *css_provider,
                                 const gchar *path,
                                 GError **error);

Загружает данные из пути к файлу path в css_provider, очищая любые ранее загруженные данные.

Параметры

css_provider

объект GtkCssProvider

path

путь к файлу для загрузки в кодировке имен файлов GLib

error

место для возврата GError, или NULL.

[out][allow-none]

Возвращает

TRUE. Значение возврата устарело, и FALSE будет возвращено только по причинам обратной совместимости, если error не NULL и произошла ошибка загрузки. Для отслеживания ошибок при загрузке CSS, подключитесь к сигналу “parsing-error”.

gtk_css_provider_load_from_resource ()

void
gtk_css_provider_load_from_resource (GtkCssProvider *css_provider,
                                     const gchar *resource_path);

Загружает данные из ресурса по пути resource_path в GtkCssProvider, очищая любые ранее загруженные данные.

Для отслеживания ошибок загрузки CSS, подключитесь к сигналу “parsing-error”.

Параметры

css_provider

объект GtkCssProvider

resource_path

путь к ресурсу GResource

С версии: 3.16

gtk_css_provider_new ()

GtkCssProvider *
gtk_css_provider_new (void);

Возвращает новый созданный объект GtkCssProvider.

Возвращает

Новый объект GtkCssProvider

gtk_css_provider_to_string ()

char *
gtk_css_provider_to_string (GtkCssProvider *provider);

Преобразует provider в строковое представление в формате CSS.

Использование gtk_css_provider_load_from_data() со значением, возвращаемым этой функцией, на новом провайдере, созданном с помощью gtk_css_provider_new(), по существу создаст дубликат данного provider.

Параметры

provider

провайдер для записи в строку

Возвращает

новую строку, представляющую provider.

С версии: 3.2

gtk_css_section_get_end_line ()

guint
gtk_css_section_get_end_line (const GtkCssSection *section);

Возвращает строку в документе CSS, где заканчивается этот раздел. Номер строки индексируется с 0, поэтому первая строка документа вернёт 0. Это значение может измениться при последующих вызовах этой функции, если section ещё не полностью обработано. Это произойдёт, например, в сигнале GtkCssProvider::parsing-error. Конечная позиция и строка могут быть идентичны начальной позиции и строке для разделов, которые не смогли успешно обработать ничего.

Параметры

section

раздел

Возвращает

номер строки

С: 3.2

gtk_css_section_get_end_position ()

guint
gtk_css_section_get_end_position (const GtkCssSection *section);

Возвращает смещение в байтах от начала текущей строки, возвращаемой через gtk_css_section_get_end_line(). Это значение может измениться при последующих вызовах этой функции, если section ещё не полностью обработано. Это произойдёт, например, в сигнале GtkCssProvider::parsing-error. Конечная позиция и строка могут быть идентичны начальной позиции и строке для разделов, которые не смогли успешно обработать ничего.

Параметры

section

раздел

Возвращает

смещение в байтах от начала строки.

С: 3.2

gtk_css_section_get_file ()

GFile *
gtk_css_section_get_file (const GtkCssSection *section);

Получает файл, из которого был проанализирован section. Если такого файла не существует, например, потому что CSS был загружен через gtk_css_provider_load_from_data(), то возвращается NULL.

Параметры

section

раздел

Возвращает

объект GFile, из которого был проанализирован section, или NULL, если section был проанализирован из других данных.

[transfer none]

С: 3.2

gtk_css_section_get_parent ()

GtkCssSection *
gtk_css_section_get_parent (const GtkCssSection *section);

Получает родительский раздел для данного section. Родительский раздел — это раздел, который содержит данный section. Особый случай — разделы типа GTK_CSS_SECTION_DOCUMENT. Их родительский элемент будет либо NULL, если это исходный документ CSS, который был загружен с помощью gtk_css_provider_load_from_file(), либо раздел типа GTK_CSS_SECTION_IMPORT, если он был загружен с помощью правила импорта из другого файла.

Параметры

section

раздел

Возвращает

родительский раздел или NULL, если нет.

[nullable][transfer none]

С: 3.2

gtk_css_section_get_section_type ()

GtkCssSectionType
gtk_css_section_get_section_type (const GtkCssSection *section);

Получает тип информации, который описывает section.

Параметры

section

раздел

Возвращает

тип section

С: 3.2

gtk_css_section_get_start_line ()

guint
gtk_css_section_get_start_line (const GtkCssSection *section);

Возвращает строку в документе CSS, где начинается этот раздел. Номер строки индексируется с 0, поэтому первая строка документа вернёт 0.

Параметры

section

раздел

Возвращает

номер строки

С: 3.2

gtk_css_section_get_start_position ()

guint
gtk_css_section_get_start_position (const GtkCssSection *section);

Возвращает смещение в байтах от начала текущей строки, возвращаемой через gtk_css_section_get_start_line().

Параметры

section

раздел

Возвращает

смещение в байтах от начала строки.

С: 3.2

gtk_css_section_ref ()

GtkCssSection *
gtk_css_section_ref (GtkCssSection *section);

Увеличивает счётчик ссылок на section.

Параметры

section

объект GtkCssSection

Возвращает

сам section.

С: 3.2

gtk_css_section_unref ()

void
gtk_css_section_unref (GtkCssSection *section);

Уменьшает счётчик ссылок на section, освобождая структуру, если счётчик ссылок достигнет 0.

Параметры

section

объект GtkCssSection

С: 3.2

Типы и значения

Структура GtkCssProvider

struct GtkCssProvider;

GTK_CSS_PROVIDER_ERROR

#define GTK_CSS_PROVIDER_ERROR (gtk_css_provider_error_quark ())

Область для ошибок GtkCssProvider.

Перечисление GtkCssProviderError

Коды ошибок для GTK_CSS_PROVIDER_ERROR.

Элементы

GTK_CSS_PROVIDER_ERROR_FAILED

Ошибка.

GTK_CSS_PROVIDER_ERROR_SYNTAX

Ошибка синтаксиса.

GTK_CSS_PROVIDER_ERROR_IMPORT

Ошибка импорта.

GTK_CSS_PROVIDER_ERROR_NAME

Ошибка имени.

GTK_CSS_PROVIDER_ERROR_DEPRECATED

Ошибка устаревания.

GTK_CSS_PROVIDER_ERROR_UNKNOWN_VALUE

Неизвестное значение.

GtkCssSection

typedef struct _GtkCssSection GtkCssSection;

Определяет часть документа CSS. Поскольку разделы вложены друг в друга, вы можете использовать gtk_css_section_get_parent() для получения содержащей области.

С: 3.2

Перечисление GtkCssSectionType

Различные типы разделов обозначают части документа CSS, как они анализируются парсером CSS GTK. Они ориентированы на CSS Grammar, но могут содержать расширения.

В будущем могут быть добавлены новые типы по мере интеграции парсером большего числа функций.

Элементы

GTK_CSS_SECTION_DOCUMENT

Раздел описывает весь документ. Это единственный момент времени, когда gtk_css_section_get_parent() может вернуть NULL.

GTK_CSS_SECTION_IMPORT

Раздел определяет правило импорта.

GTK_CSS_SECTION_COLOR_DEFINITION

Раздел определяет цвет. Это расширение GTK для CSS.

GTK_CSS_SECTION_BINDING_SET

Раздел определяет набор привязок. Это расширение GTK для CSS.

GTK_CSS_SECTION_RULESET

Раздел определяет набор правил CSS.

GTK_CSS_SECTION_SELECTOR

Раздел определяет селектор CSS.

GTK_CSS_SECTION_DECLARATION

Раздел определяет объявление переменной CSS.

GTK_CSS_SECTION_VALUE

Раздел определяет значение объявления CSS.

GTK_CSS_SECTION_KEYFRAMES

Раздел определяет ключевые кадры. Подробности см. в CSS Animations. С 3.6

С: 3.2

Подробности о сигналах

Сигнал “parsing-error”

void
user_function (GtkCssProvider *provider,
               GtkCssSection  *section,
               GError         *error,
               gpointer        user_data)

Сигнализирует о возникновении ошибки парсинга. path, line и position описывают фактическое местоположение ошибки максимально точно.

Ошибки парсинга никогда не приводят к аварийному завершению, поэтому парсинг возобновляется после ошибки. Однако ошибки могут привести к тому, что части или даже весь предоставленный данные не будут обработаны. Поэтому полезно проверить успешность парсинга, подключившись к этому сигналу.

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

Параметры

provider

провайдер, у которого произошла ошибка парсинга

section

раздел, в котором произошла ошибка

error

Ошибка парсинга

user_data

пользовательские данные, заданные при подключении обработчика сигнала.

Флаги: Run Last

См. также

GtkStyleContext, GtkStyleProvider

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.24/GtkCssProvider.html

Spec-Zone.ru

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