Spec-Zone.ru › GTK 3.20

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_resouce() и добавив провайдер с помощью gtk_style_context_add_provider() или gtk_style_context_add_provider_for_screen().

Кроме того, при инициализации GTK+ будут прочитаны определённые файлы. Сначала файл $XDG_CONFIG_HOME/gtk-3.0/gtk.css is loaded if it exists. Then, GTK+ loads the first existing file among XDG_DATA_HOME/themes/theme-name/gtk-VERSION/gtk.css, $HOME/.themes/theme-name/gtk-VERSION/gtk.css, $XDG_DATA_DIRS/themes/theme-name/gtk-VERSION/gtk.css and DATADIR/share/themes/THEME/gtk-VERSION/gtk.css, where THEME is the name of the current theme (see the #GtkSettings:gtk-theme-name setting), DATADIR is the prefix configured when GTK+ was compiled (unless overridden by the GTK_DATA_PREFIX` переменной окружения), а VERSION — номер версии GTK+. Если файл для текущей версии не найден, GTK+ пытается загрузить файлы более ранних версий вплоть до 3.0.

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

Функции

gtk_css_provider_get_default ()

GtkCssProvider *
gtk_css_provider_get_default (void);

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

Возвращаемое значение

Провайдер, используемый для резервного стилирования. Эта память принадлежит 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

a 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

a 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.

Параметры

раздел

раздел

Возвращаемое значение

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, если он был загружен с помощью правила импорта из другого файла.

Параметры

раздел

раздел

Возвращаемое значение

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

[nullable][transfer none]

С: 3.2

gtk_css_section_get_section_type ()

GtkCssSectionType
gtk_css_section_get_section_type (const GtkCssSection *section);

Возвращает тип информации, описываемой section.

Параметры

раздел

раздел

Возвращаемое значение

тип section

С: 3.2

gtk_css_section_get_start_line ()

guint
gtk_css_section_get_start_line (const GtkCssSection *section);

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

Параметры

раздел

раздел

Возвращаемое значение

номер строки

С: 3.2

gtk_css_section_get_start_position ()

guint
gtk_css_section_get_start_position (const GtkCssSection *section);

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

Параметры

раздел

раздел

Возвращаемое значение

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

С: 3.2

gtk_css_section_ref ()

GtkCssSection *
gtk_css_section_ref (GtkCssSection *section);

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

Параметры

section

a GtkCssSection

Возвращает

section само по себе.

С версии: 3.2

gtk_css_section_unref ()

void
gtk_css_section_unref (GtkCssSection *section);

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

Параметры

section

a GtkCssSection

С версии: 3.2

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

struct 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, но могут содержать расширения.

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

Элементы

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

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

Флаги: Выполнять последним

См. также

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.20/GtkCssProvider.html

Spec-Zone.ru

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