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", или | [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 | длина | |
error | место для возврата GError, или | [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, или | [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, или | [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_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
См. также
© 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