Spec-Zone.ru › GTK 3.22

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-name/gtk-VERSION/gtk.css, $HOME/.themes/theme-name/gtk-VERSION/gtk.css, $XDG_DATA_DIRS/themes/theme-name/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+, и её освобождать нельзя.

[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. Это значение может измениться при последующих вызовах этой функции, если 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.

Параметры

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

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

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, как парсит GTK-парсер CSS. Они ориентированы на 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 анимации. С 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.22/GtkCssProvider.html

Spec-Zone.ru

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