Файлы ресурсов
Файлы ресурсов — устаревшие функции для обработки файлов ресурсов
Функции
| GScanner * | gtk_rc_scanner_new () |
| GtkStyle * | gtk_rc_get_style () |
| GtkStyle * | gtk_rc_get_style_by_paths () |
| void | gtk_rc_parse () |
| void | gtk_rc_parse_string () |
| gboolean | gtk_rc_reparse_all () |
| gboolean | gtk_rc_reparse_all_for_settings () |
| void | gtk_rc_reset_styles () |
| void | gtk_rc_add_default_file () |
| gchar ** | gtk_rc_get_default_files () |
| void | gtk_rc_set_default_files () |
| guint | gtk_rc_parse_color () |
| guint | gtk_rc_parse_color_full () |
| guint | gtk_rc_parse_state () |
| guint | gtk_rc_parse_priority () |
| gchar * | gtk_rc_find_module_in_path () |
| gchar * | gtk_rc_find_pixmap_in_path () |
| gchar * | gtk_rc_get_module_dir () |
| gchar * | gtk_rc_get_im_module_path () |
| gchar * | gtk_rc_get_im_module_file () |
| gchar * | gtk_rc_get_theme_dir () |
| GtkRcStyle * | gtk_rc_style_new () |
| GtkRcStyle * | gtk_rc_style_copy () |
Типы и значения
| GtkRcStyle | |
| struct | GtkRcStyleClass |
| перечисление | GtkRcFlags |
| перечисление | GtkRcTokenType |
| перечисление | GtkPathPriorityType |
| перечисление | GtkPathType |
Иерархия объектов
GObject ╰── GtkRcStyle
Включаемые файлы
#include <gtk/gtk.h>
Описание
GTK+ предоставляет механизм файлов ресурсов для конфигурирования различных аспектов работы программы GTK+ во время выполнения.
В GTK+ 3.0 файлы ресурсов устарели и заменены на таблицы стилей, подобные CSS, которые понимает GtkCssProvider.
Файлы по умолчанию
Приложение может заставить GTK+ проанализировать определённый файл RC, вызвав gtk_rc_parse(). Кроме того, некоторые файлы будут прочитаны в конце gtk_init(). Если не изменены, ищутся файлы SYSCONFDIR/gtk-2.0/gtkrc и .gtkrc-3.0 в домашнем каталоге пользователя. (SYSCONFDIR по умолчанию равен /usr/local/etc. Его можно изменить с помощью опций --prefix или --sysconfdir при конфигурировании GTK+.)
Набор этих файлов «по умолчанию» можно получить с помощью gtk_rc_get_default_files() и изменить с помощью gtk_rc_add_default_file() и gtk_rc_set_default_files(). Кроме того, переменная окружения GTK2_RC_FILES может быть установлена в список файлов, разделённых G_SEARCHPATH_SEPARATOR_S, для переопределения набора файлов по умолчанию во время выполнения.
Локализованные файлы
Для каждого файла RC, помимо самого файла, GTK+ будет искать локально специфичный файл, который будет проанализирован после основного файла. Например, если LANG установлено как ja_JP.ujis, при загрузке файла по умолчанию ~/.gtkrc, GTK+ ищет файлы ~/.gtkrc.ja_JP и ~/.gtkrc.ja и анализирует первый из них, если он существует.
Имена путей и шаблоны
Файл ресурсов определяет ряд стилей и сочетаний клавиш и привязывает их к определённым виджетам. Привязка выполняется с помощью объявлений widget, widget_class и class. Например:
привязывает стиль "my-entry-class" ко всем виджетам, чья «путь к виджету» соответствует «шаблону» "mywindow.*.GtkEntry". То есть все виджеты GtkEntry, которые являются частью окна GtkWindow с именем "mywindow".
Здесь шаблоны заданы в стандартном синтаксисе оболочки glob. Символ "?" соответствует любому символу, а "*" соответствует нулю или более любых символов. Три типа сопоставления выполняются относительно пути к виджету, «пути к классу» и иерархии классов. И путь к виджету, и путь к классу состоят из списка всех родителей виджета и самого виджета, разделенных символом ".", от внешнего к внутреннему. Разница в том, что в пути к виджету, если присутствует, используется имя, заданное функцией gtk_widget_set_name(), в противном случае используется имя класса виджета, а для пути к классу всегда используется имя класса.
Начиная с GTK+ 2.10, пути widget_class также могут содержать подстроки <classname>, которые соответствуют классу с указанным именем и всем производным классам. Например,
будет соответствовать виджетам GtkLabel, которые находятся в любой строке меню.
Таким образом, если у вас есть виджет GtkEntry с именем "myentry", внутри горизонтальной панели в окне с именем "mywindow", то путь к виджету: "mywindow.GtkHBox.myentry", а путь к классу: "GtkWindow.GtkHBox.GtkEntry".
Сопоставление с классом немного отличается. Проверка шаблона выполняется для всех имён классов в иерархии классов виджета (а не в иерархии компоновки) последовательно, поэтому шаблон:
будет соответствовать не только виджетам GtkButton, но также виджетам GtkToggleButton и GtkCheckButton, так как эти классы наследуются от GtkButton.
Кроме того, для каждого шаблона можно указать приоритет, и стили переопределяют другие стили сначала по приоритету, затем по типу шаблона и затем по порядку указания (позже переопределяет ранее).
highestrcthemeapplicationgtklowest
rc является значением по умолчанию для стилей, считываемых из файла RC, theme является значением по умолчанию для стилей, считываемых из файлов темы RC, application следует использовать для стилей, которые устанавливает приложение, и gtk используется для стилей, созданных GTK+ внутри.
Файлы темы gtkrc
Файлы темы RC сначала загружаются из ~/.themes/, затем из каталога, заданного gtk_rc_get_theme_dir(). Просматриваемые файлы будут gtk-3.0/gtkrc.
Когда приложение предпочитает тёмные темы (см. свойство “gtk-application-prefer-dark-theme” для подробностей), gtk-3.0/gtkrc-dark загружается первым, и если он отсутствует, загружается gtk-3.0/gtkrc.
Оптимизация сопоставления стилей RC
Каждый раз, когда виджет создаётся и добавляется в иерархию компоновки GtkWindow («закреплён»), составляется список соответствующих стилей RC из всех прочитанных стилей RC. Для этого каждый стиль RC сопоставляется с путём к классу виджета, путём к имени виджета и иерархией наследования виджета. Вследствие этого значительное замедление может быть вызвано использованием большого числа стилей RC и использованием шаблонов стилей RC, которые медленно или сложно сопоставляются с данным виджетом. В следующем упорядоченном списке приведены несколько советов (упорядоченных по эффективности) для уменьшения накладных расходов на сопоставление стилей RC:
Переместите стили RC для определённых приложений в файлы RC, предназначенные для этих приложений, и анализируйте файлы RC, специфичные для приложений, только для приложений, которые ими затрагиваются. Это уменьшает общее количество стилей RC, которые необходимо учитывать для соответствия в группе приложений.
-
Объедините несколько стилей, использующих ту же схему сопоставления, например:
быстрее сопоставляется как:
Следует избегать использования подстановочных символов; это в большинстве случаев сводит соответствие отдельного стиля RC к единственному целочисленному сравнению.
Для избежания сложных рекурсивных сопоставлений следует отдавать предпочтение указанию полных имён классов (для соответствий
class) или полных путей (для соответствийwidgetиwidget_class) по сравнению с сокращёнными именами, содержащими"*"или"?".Если это необходимо, подстановочные знаки следует использовать только в конце или в начале шаблона. Это снижает сложность сопоставления до сравнения строк на стиль RC.
При использовании подстановочных знаков следует отдавать предпочтение
"?"перед"*". Это может уменьшить сложность сопоставления с O(n^2) до O(n). Например,"Gtk*Box"можно преобразовать в"Gtk?Box"и при этом он всё ещё будет соответствовать GtkHBox и GtkVBox.Использование подстановочных символов
"*"должно быть ограничено по возможности, так как сопоставление"A*B*C*RestString"может привести к сложностям сопоставления порядка O(n^2) в худшем случае.
Декларации верхнего уровня
Файл RC — это текстовый файл, состоящий из последовательности деклараций. Символы “#” обозначают комментарии, а часть строки после “#” игнорируется при парсинге файла RC.
Возможные декларации верхнего уровня:
-
binding name { ... }Объявляет набор связей.
-
class pattern [ style | binding ][ : priority ] nameУстанавливает стиль или набор связей для конкретной ветви иерархии наследования.
-
include filenameПарсит другой файл в этом месте. Если имя файла не является абсолютным, оно ищется в каталогах текущих открытых файлов RC.
GTK+ также пытается загрузить локально-специфичную версию включенного файла.
-
module_path pathУстанавливает путь (список каталогов, разделённых двоеточиями), который будет использоваться для поиска движков тем, упомянутых в файлах RC.
-
pixmap_path pathУстанавливает путь (список каталогов, разделённых двоеточиями), который будет использоваться для поиска пиксельных значков, упомянутых в файлах RC.
-
im_module_file pathnameУстанавливает путь к файлу модулей IM. Установка из файлов RC устарела; используйте вместо этого переменную окружения
GTK_IM_MODULE_FILE. -
style name [ = parent ] { ... }Объявляет стиль.
-
widget pattern [ style | binding ][ : priority ] nameУстанавливает стиль или набор связей для конкретной группы виджетов, сопоставляя путь к виджету.
-
widget_class pattern [ style | binding ][ : priority ] nameУстанавливает стиль или набор связей для конкретной группы виджетов, сопоставляя путь к классу.
-
setting = value
Устанавливает значение для настройки. Обратите внимание, что настройки в файлах RC перекрываются системными настройками (которые управляются менеджером XSettings на X11).
Стили
Стиль RC задаётся декларацией style в файле RC, а затем связывается с виджетами с помощью деклараций widget, widget_class или class. Все стили, применяемые к конкретному виджету, комбинируются вместе, причём декларации widget переопределяют декларации widget_class, которые, в свою очередь, переопределяют декларации class. Внутри каждого типа деклараций последующие декларации переопределяют предыдущие.
Внутри декларации style возможные элементы:
-
bg[state] = colorУстанавливает цвет, используемый для фона большинства виджетов.
-
fg[state] = colorУстанавливает цвет, используемый для переднего плана большинства виджетов.
-
base[state] = colorУстанавливает цвет фона виджетов, отображающих редактируемый текст. Этот цвет используется для фона, в том числе, GtkTextView, GtkEntry.
-
text[state] = colorУстанавливает цвет, используемый для переднего плана виджетов, использующих
baseдля цвета фона. -
xthickness = numberУстанавливает толщину по оси X, которая используется для различных значений горизонтального отступа в GTK+.
-
ythickness = numberУстанавливает толщину по оси Y, которая используется для различных значений вертикального отступа в GTK+.
-
bg_pixmap[state] = pixmapУстанавливает пиксельный фон, который будет использоваться вместо цвета
bg(или для GtkText, вместо цветаbase). Специальное значение"<parent>"может использоваться для указания того, что виджет должен использовать тот же фоновый пиксельный рисунок, что и его родитель. Специальное значение"<none>"может использоваться для указания отсутствия фонового пиксельного рисунка. -
font = fontНачиная с GTK+ 2.0, декларации «font» и «fontset» игнорируются; используйте вместо этого декларации «font_name».
-
fontset = fontНачиная с GTK+ 2.0, декларации «font» и «fontset» игнорируются; используйте вместо этого декларации «font_name».
-
font_name = fontУстанавливает шрифт для виджета. Шрифт должен быть именем шрифта Pango, например, «Sans Italic 10». Подробности об именах шрифтов Pango см. в
pango_font_description_from_string(). -
stock["stock-id"] = { icon source specifications }Определяет значок для элемента запаса.
-
color["color-name"] = color specificationС версии 2.10 этот элемент может использоваться для определения символических цветов. Синтаксис спецификаций цветов см. ниже.
-
engine "engine" { engine-specific settings }Определяет движок, который будет использоваться при рисовании с этим стилем.
-
class::property = valueУстанавливает свойство стиля для класса виджета.
Цвета и фоновые пиксельные рисунки задаются как функция состояния виджета. Состояния:
-
NORMALЦвет, используемый для виджета в его нормальном состоянии.
-
ACTIVEВариант цвета
NORMAL, используемый, когда виджет находится в состоянииGTK_STATE_ACTIVE, а также для желоба полосы прокрутки, вкладок NoteBook, отличных от текущей вкладки, и аналогичных областей. Часто это должен быть более тёмный вариант цветаNORMAL. -
PRELIGHTЦвет, используемый для виджетов в состоянии
GTK_STATE_PRELIGHT. Это состояние используется для кнопок и элементов меню, над которыми наведён курсор мыши, и для их дочерних элементов. -
SELECTEDЦвет, используемый для выделения данных, выбранных пользователем. Например, для выделенных элементов в списке и для выделения в редактируемом виджете.
-
INSENSITIVEЦвет, используемый для фона виджетов, которые были установлены в неактивное состояние с помощью
gtk_widget_set_sensitive().
Формат цвета
Цвета могут быть указаны в виде строки, содержащей имя цвета (GTK+ знает все имена из базы данных цветов X /usr/lib/X11/rgb.txt), в одном из шестнадцатеричных форматов #rrrrggggbbbb, #rrrgggbbb, #rrggbb или #rgb, где r, g и b — шестнадцатеричные цифры, или могут быть указаны как тройка { r, g,
b}, где r, g и b — целые числа в диапазоне от 0 до 65535 или числа с плавающей точкой в диапазоне от 0,0 до 1,0.
С версии 2.10 цвета также могут быть указаны, ссылаясь на символический цвет, как показано ниже: @color-name, или с использованием выражений для комбинирования цветов. В настоящее время поддерживаются следующие выражения:
-
mix (factor, color1, color2)
Вычисляет новый цвет путём смешивания color1 и color2. Коэффициент определяет, насколько новый цвет близок к color1. Коэффициент 1,0 даёт чистый цвет color1, коэффициент 0,0 даёт чистый цвет color2.
-
shade (factor, color)
Вычисляет более светлый или более тёмный вариант цвета. Коэффициент 1,0 оставляет цвет неизменным, меньшие коэффициенты дают более тёмные цвета, большие коэффициенты — более светлые.
-
lighter (color)
Это сокращение для
shade (1.3, color). -
darker (color)
Это сокращение для
shade (0.7, color).
Вот несколько примеров выражений цветов:
В определении stock источники значков указываются как 4-кортеж: имя файла изображения или имя значка, направление текста, состояние виджета и размер в указанном порядке. Каждый источник значка указывает имя файла изображения или имя значка для использования с заданным направлением, состоянием и размером. Имена файлов указываются как строка, например, "itemltr.png", а имена значков (ищутся в текущей теме значков) указываются с ведущим @, например, @"item-ltr". Символ * может использоваться как подстановка, а если направление/состояние/размер опущены, они принимают значение по умолчанию *. Например, следующее определяет различные значки для языков слева направо и справа налево:
Это можно сократить следующим образом:
Вы можете указать пользовательские значки для определённых размеров, как показано ниже:
Размеры, которые поставляются с самим GTK+, это "gtk-menu", "gtk-small-toolbar", "gtk-large-toolbar", "gtk-button", "gtk-dialog". Приложения могут определить и другие размеры.
Также можно использовать пользовательские значки для заданного состояния, например:
При выборе источника значка для использования GTK+ будет учитывать направление текста как наиболее важное, состояние — второе, а размер — третье. Он выберет наилучшее совпадение на основе этих критериев. Если атрибут совпадает точно (например, вы указали PRELIGHT или указали размер), GTK+ не будет изменять изображение; если атрибут совпадает с подстановкой, GTK+ будет масштабировать или изменять изображение, чтобы оно соответствовало запрошенному состоянию и размеру.
Связывания клавиш
Связывания клавиш позволяют пользователю задавать действия, которые должны выполняться при нажатии определённых клавиш. Формат объявления набора связываний:
key — это строка, состоящая из набора модификаторов, за которыми следует имя клавиши. Модификаторы могут быть:
<alt><ctl><control><meta><hyper><super><mod1><mod2><mod3><mod4><mod5><release><shft><shift>
<shft> — это псевдоним для <shift>, <ctl> — это псевдоним для <control>, а <alt> — это псевдоним для <mod1>.
Действие, привязанное к клавише, представляет собой последовательность имён сигналов (строки) и параметров для каждого сигнала. Сигналы должны быть сигналами действий. (См. g_signal_new()). Каждый параметр может быть числом с плавающей точкой, целым числом, строкой или необрамлённой строкой, представляющей значение перечисления. Типы указанных параметров должны соответствовать типам параметров сигнала.
Наборы связываний подключаются к виджетам так же, как и стили, с одним отличием: наборы связываний переопределяют другие наборы связываний сначала по типу шаблона, затем по приоритету и затем по порядку указания. Приоритеты, которые можно указать, и их значения по умолчанию такие же, как и для стилей.
Функции
gtk_rc_scanner_new ()
GScanner *
gtk_rc_scanner_new (void); gtk_rc_scanner_new устарела начиная с версии 3.0 и не должна использоваться в новых кодах.
Используйте GtkCssProvider вместо этого
[skip]
gtk_rc_get_style ()
GtkStyle *
gtk_rc_get_style (GtkWidget *widget); gtk_rc_get_style устарела начиная с версии 3.0 и не должна использоваться в новых кодах.
Используйте GtkStyleContext вместо этого
Находит все соответствующие стили RC для данного виджета, комбинирует их и создает GtkStyle, представляющий составной вид. (GTK+ фактически сохраняет кэш ранее созданных стилей, поэтому новый стиль может не создаваться.)
Параметры
widget |
Возвращаемое значение
результирующий стиль. Счётчик ссылок на возвращаемый стиль не увеличивается, поэтому, если вы хотите сохранить этот стиль, вы должны добавить ссылку сами.
[transfer none]
gtk_rc_get_style_by_paths ()
GtkStyle * gtk_rc_get_style_by_paths (GtkSettings *settings,const char *widget_path,const char *class_path,GType type);
gtk_rc_get_style_by_paths устарела начиная с версии 3.0 и не должна использоваться в новых кодах.
Используйте GtkStyleContext вместо этого
Создаёт GtkStyle из стилей, определённых в файле RC, предоставляя исходные компоненты, используемые для соответствия. Эта функция может быть полезной при создании псевдо-виджетов, которые должны быть оформлены как виджеты, но фактически не имеют соответствующих виджетов GTK+. Примером этого являются элементы внутри виджета GNOME canvas.
Действие gtk_rc_get_style() аналогично:
widget "mywindow.*.GtkEntry" style "my-entry-class"
Параметры
settings | объект GtkSettings | |
widget_path | путь к виджету для поиска стиля, или | [allow-none] |
class_path | путь к классу для поиска стиля, или | [allow-none] |
type | тип, который будет использован вместе с родительскими типами этого типа при поиске соответствий в стилях класса, или G_TYPE_NONE |
Возвращаемое значение
Стиль, созданный путём соответствия с заданными путями, или NULL, если ничего соответствующего не указано и должен быть использован стиль по умолчанию. Возвращаемое значение принадлежит GTK+ в качестве части внутреннего кэша, поэтому вам необходимо вызвать g_object_ref() на возвращаемом значении, если вы хотите сохранить ссылку на него.
[nullable][transfer none]
gtk_rc_parse ()
void
gtk_rc_parse (const gchar *filename); gtk_rc_parse устарела начиная с версии 3.0 и не должна использоваться в новых кодах.
Используйте GtkCssProvider вместо этого.
Парсит указанный файл ресурсов.
Параметры
filename | имя файла для парсинга. Если |
gtk_rc_parse_string ()
void
gtk_rc_parse_string (const gchar *rc_string); gtk_rc_parse_string устарела начиная с версии 3.0 и не должна использоваться в новых кодах.
Используйте GtkCssProvider вместо этого.
Парсит информацию о ресурсах непосредственно из строки.
Параметры
rc_string | строка для парсинга. |
gtk_rc_reparse_all ()
gboolean
gtk_rc_reparse_all (void); gtk_rc_reparse_all устарела начиная с версии 3.0 и не должна использоваться в новых кодах.
Используйте GtkCssProvider вместо этого.
Если время изменения любого ранее прочитанного файла для по умолчанию GtkSettings изменилось, то отбросьте всю информацию о стиле и перечитайте все ранее прочитанные файлы RC.
Возвращаемое значение
TRUE, если файлы были перечитаны.
gtk_rc_reparse_all_for_settings ()
gboolean gtk_rc_reparse_all_for_settings (GtkSettings *settings,gboolean force_load);
gtk_rc_reparse_all_for_settings устарела начиная с версии 3.0 и не должна использоваться в новых кодах.
Используйте GtkCssProvider вместо этого.
Если время изменения любого ранее прочитанного файла для заданного GtkSettings изменилось, отбросьте всю информацию о стиле и перечитайте все ранее прочитанные файлы RC.
Параметры
settings | ||
force_load | загрузить, независимо от того, изменилось ли что-либо |
Возвращаемое значение
TRUE, если файлы были перечитаны.
gtk_rc_reset_styles ()
void
gtk_rc_reset_styles (GtkSettings *settings); gtk_rc_reset_styles устарела начиная с версии 3.0 и не должна использоваться в новых кодах.
Используйте GtkCssProvider вместо этого.
Эта функция пересчитывает стили для всех виджетов, использующих определённый объект GtkSettings. (Существует один объект GtkSettings на GdkScreen, см. gtk_settings_get_for_screen()); она полезна, когда изменился какой-либо глобальный параметр, влияющий на внешний вид всех виджетов, так как при получении виджетом нового стиля происходит как перерисовка, так и пересчёт любой кэшированной информации о его внешнем виде. Пример: используется при изменении размера шрифта по умолчанию, заданного операционной системой. Обратите внимание, что эта функция не влияет на виджеты, у которых стиль задан явно с помощью gtk_widget_set_style().
Параметры
settings |
С: 2.4
gtk_rc_add_default_file ()
void
gtk_rc_add_default_file (const gchar *filename); gtk_rc_add_default_file устарел начиная с версии 3.0 и не должен использоваться в новом коде.
Используйте GtkStyleContext со своим GtkStyleProvider вместо этого.
Добавляет файл в список файлов, которые будут обработаны в конце gtk_init().
Параметры
filename | путь к файлу. Если | [type filename] |
gtk_rc_get_default_files ()
gchar **
gtk_rc_get_default_files (void); gtk_rc_get_default_files устарел начиная с версии 3.0 и не должен использоваться в новом коде.
Используйте GtkStyleContext вместо этого.
Возвращает текущий список файлов RC, которые будут обработаны в конце gtk_init().
Возвращаемое значение
Массив путей к файлам, завершённый значением NULL. Память выделена GTK+ и не должна освобождаться приложением. Если вам нужно сохранить эту информацию, сделайте копию.
[transfer none][array zero-terminated=1][element-type filename]
gtk_rc_set-default-files ()
void
gtk_rc_set_default_files (gchar **filenames); gtk_rc_set_default_files устарел начиная с версии 3.0 и не должен использоваться в новом коде.
Используйте GtkStyleContext со своим GtkStyleProvider вместо этого.
Устанавливает список файлов, которые GTK+ будет читать в конце gtk_init().
Параметры
filenames | Список путей к файлам, завершённый значением | [array zero-terminated=1][element-type filename] |
gtk_rc_parse_color ()
guint gtk_rc_parse_color (GScanner *scanner,GdkColor *color);
gtk_rc_parse_color устарел начиная с версии 3.0 и не должен использоваться в новом коде.
Используйте GtkCssProvider вместо этого.
Парсит цвет в формате, ожидаемом в файле RC.
Обратите внимание, что движки тем должны использовать gtk_rc_parse_color_full(), чтобы поддерживать символические цвета.
Параметры
Возвращаемое значение
G_TOKEN_NONE если разбор успешен, в противном случае — ожидаемый, но не найденный токен.
gtk_rc_parse_color_full ()
guint gtk_rc_parse_color_full (GScanner *scanner,GtkRcStyle *style,GdkColor *color);
gtk_rc_parse_color_full устарел начиная с версии 3.0 и не должен использоваться в новом коде.
Используйте GtkCssProvider вместо этого.
Парсит цвет в формате, ожидаемом в файле RC. Если style не NULL, он будет использован для разрешения ссылок на символические цвета.
Параметры
scanner | сканер GScanner | |
style | GtkRcStyle или | [allow-none] |
color | указатель на GdkColor, в котором будет храниться результат. | [out] |
Возвращаемое значение
G_TOKEN_NONE если разбор успешен, в противном случае — ожидаемый, но не найденный токен.
С версии 2.12
gtk_rc_parse_state ()
guint gtk_rc_parse_state (GScanner *scanner,GtkStateType *state);
gtk_rc_parse_state устарел начиная с версии 3.0 и не должен использоваться в новом коде.
Используйте GtkCssProvider вместо этого.
Парсит переменную GtkStateType в формате, ожидаемом в файле RC.
Параметры
scanner | сканер GScanner (должен быть инициализирован для разбора файла RC) | |
state | указатель на переменную GtkStateType, в которой будет храниться результат. | [out] |
Возвращаемое значение
G_TOKEN_NONE если разбор успешен, в противном случае — ожидаемый, но не найденный токен.
gtk_rc_parse_priority ()
guint gtk_rc_parse_priority (GScanner *scanner,GtkPathPriorityType *priority);
gtk_rc_parse_priority устарел начиная с версии 3.0 и не должен использоваться в новом коде.
Используйте GtkCssProvider вместо этого.
Парсит переменную GtkPathPriorityType в формате, ожидаемом в файле RC.
Параметры
scanner | сканер GScanner | |
priority | Указатель на переменную GtkPathPriorityType, в которой будет храниться результат. |
Возвращаемое значение
G_TOKEN_NONE если разбор успешен, в противном случае — ожидаемый, но не найденный токен.
gtk_rc_find_module_in_path ()
gchar *
gtk_rc_find_module_in_path (const gchar *module_file); gtk_rc_find_module_in_path устарело с версии 3.0 и не должно использоваться в новом коде.
Используйте GtkCssProvider вместо этого.
Ищет движок темы в пути поиска GTK+. Эта функция не полезна для приложений и не должна использоваться.
Параметры
module_file | название движка темы |
gtk_rc_find_pixmap_in_path ()
gchar * gtk_rc_find_pixmap_in_path (GtkSettings *settings,GScanner *scanner,const gchar *pixmap_file);
gtk_rc_find_pixmap_in_path устарело с версии 3.0 и не должно использоваться в новом коде.
Используйте GtkCssProvider вместо этого.
Ищет файл в пути к пиктограммам для указанных GtkSettings. Если файл не найден, выводится сообщение об ошибке с помощью g_warning() и возвращается NULL.
Параметры
settings | объект GtkSettings | |
scanner | Сканер, используемый для получения номера строки в сообщении об ошибке, или | |
pixmap_file | имя файла пиктограммы для поиска. |
Возвращает
имя файла.
[type имя_файла]
gtk_rc_get_module_dir ()
gchar *
gtk_rc_get_module_dir (void); gtk_rc_get_module_dir устарело с версии 3.0 и не должно использоваться в новом коде.
Используйте GtkCssProvider вместо этого.
Возвращает каталог, в котором GTK+ ищет движки тем. Полную информацию о поиске движков тем см. в документации для GTK_PATH в Запуске приложений GTK+.
gtk_rc_get_im-module-path ()
gchar *
gtk_rc_get_im_module_path (void); gtk_rc_get_im_module_path устарело с версии 3.0 и не должно использоваться в новом коде.
Используйте GtkCssProvider вместо этого.
Получает путь, в котором искать модули IM. Дополнительную информацию о поиске модулей см. в документации переменной среды GTK_PATH. Эта функция полезна только для утилит, поставляемых с GTK+, и обычно не должна использоваться приложениями.
Возвращает
новый строковый объект, содержащий путь для поиска модулей IM.
[type имя_файла]
gtk_rc_get_im_module_file ()
gchar *
gtk_rc_get_im_module_file (void); gtk_rc_get_im_module_file устарело с версии 3.0 и не должно использоваться в новом коде.
Используйте GtkCssProvider вместо этого.
Получает путь к файлу модулей IM. Дополнительную информацию см. в документации переменной среды GTK_IM_MODULE_FILE.
Возвращает
новый строковый объект, содержащий имя файла, в котором перечислены доступные для загрузки модули IM.
[type имя_файла]
gtk_rc_get_theme_dir ()
gchar *
gtk_rc_get_theme_dir (void); gtk_rc_get_theme_dir устарело с версии 3.0 и не должно использоваться в новом коде.
Используйте GtkCssProvider вместо этого.
Возвращает стандартный каталог, в котором должны быть установлены темы. (GTK+ фактически не использует этот каталог.)
Возвращает
Каталог (он должен быть освобожден с помощью g_free()).
gtk_rc_style_new ()
GtkRcStyle *
gtk_rc_style_new (void); gtk_rc_style_new устарело с версии 3.0 и не должно использоваться в новом коде.
Используйте GtkCssProvider вместо этого.
Создаёт новый GtkRcStyle без установленных полей и счётчиком ссылок 1.
Возвращает
созданный GtkRcStyle
gtk_rc_style_copy ()
GtkRcStyle *
gtk_rc_style_copy (GtkRcStyle *orig); gtk_rc_style_copy устарело с версии 3.0 и не должно использоваться в новом коде.
Используйте GtkCssProvider вместо этого.
Создаёт копию указанного GtkRcStyle. Эта функция корректно скопирует стиль RC, который является членом класса, производного от GtkRcStyle.
Параметры
orig | стиль для копирования |
Типы и значения
GtkRcStyle
typedef struct {
gchar *name;
gchar *bg_pixmap_name[5];
PangoFontDescription *font_desc;
GtkRcFlags color_flags[5];
GdkColor fg[5];
GdkColor bg[5];
GdkColor text[5];
GdkColor base[5];
gint xthickness;
gint ythickness;
} GtkRcStyle;
Структура GtkRcStyle используется для представления набора информации о внешнем виде виджета. Позже её можно комбинировать с другими структурами GtkRcStyle<!-- --> для формирования структуры GtkStyle.
Члены
gchar * | Имя | |
gchar * | Имя пиктограммы | |
PangoFontDescription * | Структура PangoFontDescription | |
GtkRcFlags | Флаги GtkRcFlags | |
GdkColor | Цвета переднего плана | |
GdkColor | Цвета заднего плана | |
GdkColor | Цвета текста | |
GdkColor | Цвета основы | |
gint | Толщина по оси X | |
gint | Толщина по оси Y |
struct GtkRcStyleClass
struct GtkRcStyleClass {
GObjectClass parent_class;
/* Create an empty RC style of the same type as this RC style.
* The default implementation, which does
* g_object_new (G_OBJECT_TYPE (style), NULL);
* should work in most cases.
*/
GtkRcStyle * (*create_rc_style) (GtkRcStyle *rc_style);
/* Fill in engine specific parts of GtkRcStyle by parsing contents
* of brackets. Returns G_TOKEN_NONE if successful, otherwise returns
* the token it expected but didn't get.
*/
guint (*parse) (GtkRcStyle *rc_style,
GtkSettings *settings,
GScanner *scanner);
/* Combine RC style data from src into dest. If overridden, this
* function should chain to the parent.
*/
void (*merge) (GtkRcStyle *dest,
GtkRcStyle *src);
/* Create an empty style suitable to this RC style
*/
GtkStyle * (*create_style) (GtkRcStyle *rc_style);
};
Члены
| ||
| ||
| ||
|
enum GtkRcFlags
Устарело
Члены
GTK_RC_FG | Устарело | |
GTK_RC_BG | Устарело | |
GTK_RC_TEXT | Устарело | |
GTK_RC_BASE | Устарело |
enum GtkRcTokenType
GtkRcTokenType устарел с версии 3.0 и не должен использоваться в новом коде.
Используйте GtkCssProvider вместо этого.
Перечисление GtkRcTokenType представляет токены в RC-файле. Оно предоставляется для того, чтобы движки тем могли повторно использовать эти токены при разборе частей RC-файла, специфичных для движка тем.
Члены
GTK_RC_TOKEN_INVALID | Устарел | |
GTK_RC_TOKEN_INCLUDE | Устарел | |
GTK_RC_TOKEN_NORMAL | Устарел | |
GTK_RC_TOKEN_ACTIVE | Устарел | |
GTK_RC_TOKEN_PRELIGHT | Устарел | |
GTK_RC_TOKEN_SELECTED | Устарел | |
GTK_RC_TOKEN_INSENSITIVE | Устарел | |
GTK_RC_TOKEN_FG | Устарел | |
GTK_RC_TOKEN_BG | Устарел | |
GTK_RC_TOKEN_TEXT | Устарел | |
GTK_RC_TOKEN_BASE | Устарел | |
GTK_RC_TOKEN_XTHICKNESS | Устарел | |
GTK_RC_TOKEN_YTHICKNESS | Устарел | |
GTK_RC_TOKEN_FONT | Устарел | |
GTK_RC_TOKEN_FONTSET | Устарел | |
GTK_RC_TOKEN_FONT_NAME | Устарел | |
GTK_RC_TOKEN_BG_PIXMAP | Устарел | |
GTK_RC_TOKEN_PIXMAP_PATH | Устарел | |
GTK_RC_TOKEN_STYLE | Устарел | |
GTK_RC_TOKEN_BINDING | Устарел | |
GTK_RC_TOKEN_BIND | Устарел | |
GTK_RC_TOKEN_WIDGET | Устарел | |
GTK_RC_TOKEN_WIDGET_CLASS | Устарел | |
GTK_RC_TOKEN_CLASS | Устарел | |
GTK_RC_TOKEN_LOWEST | Устарел | |
GTK_RC_TOKEN_GTK | Устарел | |
GTK_RC_TOKEN_APPLICATION | Устарел | |
GTK_RC_TOKEN_THEME | Устарел | |
GTK_RC_TOKEN_RC | Устарел | |
GTK_RC_TOKEN_HIGHEST | Устарел | |
GTK_RC_TOKEN_ENGINE | Устарел | |
GTK_RC_TOKEN_MODULE_PATH | Устарел | |
GTK_RC_TOKEN_IM_MODULE_PATH | Устарел | |
GTK_RC_TOKEN_IM_MODULE_FILE | Устарел | |
GTK_RC_TOKEN_STOCK | Устарел | |
GTK_RC_TOKEN_LTR | Устарел | |
GTK_RC_TOKEN_RTL | Устарел | |
GTK_RC_TOKEN_COLOR | Устарел | |
GTK_RC_TOKEN_UNBIND | Устарел | |
GTK_RC_TOKEN_LAST | Устарел |
enum GtkPathPriorityType
GtkPathPriorityType устарел с версии 3.0 и не должен использоваться в новом коде.
Приоритеты для поиска по пути. См. также gtk_binding_set_add_path().
Члены
GTK_PATH_PRIO_LOWEST | Устарел | |
GTK_PATH_PRIO_GTK | Устарел | |
GTK_PATH_PRIO_APPLICATION | Устарел | |
GTK_PATH_PRIO_THEME | Устарел | |
GTK_PATH_PRIO_RC | Устарел | |
GTK_PATH_PRIO_HIGHEST | Устарел |
Перечисление GtkPathType
GtkPathType устарело с версии 3.0 и не должно использоваться в новых кодах.
Типы путей виджетов. См. также gtk_binding_set_add_path().
Элементы
GTK_PATH_WIDGET | Устарело | |
GTK_PATH_WIDGET_CLASS | Устарело | |
GTK_PATH_CLASS | Устарело |
© 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/gtk3-Resource-Files.html