GtkCssProvider
GtkCssProvider — стилизация виджетов с помощью CSS
Функции
Сигналы
| 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_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", или | [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 | ||
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 | раздел |
С: 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 |
Возвращает
сам 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, как парсит GTK-парсер CSS. Они ориентированы на 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 анимации. С 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.22/GtkCssProvider.html