GtkCssProvider
GtkCssProvider — стилизация виджетов в стиле CSS
Функции
| void | gtk_css_section_unref () |
Сигналы
| void | parsing-error | Run Last |
Типы и значения
| struct | GtkCssProvider |
| #define | GTK_CSS_PROVIDER_ERROR |
| enum | GtkCssProviderError |
| GtkCssSection | |
| enum | GtkCssSectionType |
Реализованные интерфейсы
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", или | [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 | ||
data | Данные CSS, загруженные в память. | [array length=length][element-type guint8] |
length | Длина | |
error | [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 | ||
file | GFile указывающий на файл для загрузки | |
error | [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 | ||
path | путь к файлу для загрузки в кодировке имён файлов GLib | |
error | [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, если он был загружен с помощью правила импорта из другого файла.
Параметры
раздел | раздел |
С: 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 |
Возвращает
section само по себе.
С версии: 3.2
gtk_css_section_unref ()
void
gtk_css_section_unref (GtkCssSection *section); Уменьшает счётчик ссылок на section, освобождая структуру, если счётчик ссылок достигнет 0.
Параметры
section |
С версии: 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_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 | данные пользователя, заданные при подключении обработчика сигналов. |
Флаги: Выполнять последним
См. также
© 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