Spec-Zone.ru › GTK 3.22

Файлы ресурсов

Файлы ресурсов — устаревшие функции для работы с файлами ресурсов

Функции

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(). Если не изменять настройки, GTK+ будет искать файлы 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.

Кроме того, для каждого шаблона можно указать приоритет, и стили переопределяют другие стили сначала по приоритету, затем по типу шаблона и, наконец, по порядку указания (более позднее переопределяет более раннее). Указанные приоритеты (с высшего к низшему):

  • highest

  • rc

  • theme

  • application

  • gtk

  • lowest

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:

  1. Переместите стили RC для определённых приложений в файлы RC, предназначенные для этих приложений, и обрабатывайте файлы RC, специфичные для приложения, только для приложений, на которые они влияют. Это уменьшает общее количество стилей RC, которые должны учитываться для соответствия в группе приложений.

  2. Объедините несколько стилей, использующих ту же схему соответствия, например:

    быстрее сопоставляется как:

  3. Следует избегать использования подстановочных символов, это в большинстве случаев сводит соответствие стилей RC к одному сравнению целых чисел.

  4. Чтобы избежать сложного рекурсивного соответствия, следует предпочесть указание полных имён классов (для соответствия class) или полных имён путей (для соответствия widget и widget_class) вместо сокращённых имён, содержащих "*" или "?".

  5. Если это действительно необходимо, подстановочные символы должны использоваться только в конце или в начале шаблона. Это уменьшает сложность соответствия до сравнения строк на стиль RC.

  6. При использовании подстановочных символов следует предпочесть "?" перед "*". Это позволяет уменьшить сложность сопоставления с O(n^2) до O(n). Например, "Gtk*Box" можно заменить на "Gtk?Box", и это по-прежнему будет соответствовать виджетам GtkHBox и GtkVBox.

  7. Использование подстановочных символов "*" следует ограничить по возможности, так как соответствие "A*B*C*RestString" может привести к сложности сопоставления O(n^2) в худшем случае.

Объявления верхнего уровня

Файл RC — это текстовый файл, состоящий из последовательности объявлений. Символы “#” разделяют комментарии, а часть строки после “#” игнорируется при разборе файла RC.

Возможные объявления верхнего уровня:

  • binding name { ... }

    Объявляет набор связей.

  • class pattern [ style | binding ][ : priority ] name

    Устанавливает стиль или набор связей для определённой ветви иерархии наследования.

  • include filename

    Разбирает другой файл в этом месте. Если имя файла не является абсолютным, оно ищется в каталогах открытых в данный момент файлов RC.

    GTK+ также пытается загрузить локально-зависимую версию включённого файла locale-specific variant.

  • module_path path

    Устанавливает путь (список каталогов, разделённых двоеточием), который будет просматриваться для поиска движков тем, упоминаемых в файлах RC.

  • pixmap_path path

    Устанавливает путь (список каталогов, разделённых двоеточием), который будет просматриваться для поиска растровых изображений (pixmaps), упоминаемых в файлах 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 }

    Определяет значок для элемента stock.

  • 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 источники значков указываются как четвёрка: имя файла изображения или имя значка, направление текста, состояние виджета и размер, в таком порядке. Каждый источник значка определяет имя файла изображения или имя значка для использования с заданным направлением, состоянием и размером. Имена файлов указываются как строка, например, "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

a GtkWidget

Возвращаемое значение

результирующий стиль. Счётчик ссылок на возвращаемый стиль не увеличивается, поэтому, если вы хотите сохранить этот стиль, вы должны самостоятельно добавить ссылку.

[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

путь к виджету для поиска стиля, или NULL, если сопоставление по пути к виджету не должно выполняться.

[allow-none]

class_path

путь к классу для поиска стиля, или NULL, если сопоставление по пути к классу не должно выполняться.

[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

имя файла для парсинга. Если 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

a GtkSettings

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

a GtkSettings

Since: 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

путь к файлу. Если 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

Список имён файлов, завершённый NULL.

[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() для поддержки символических цветов.

Параметры

scanner

сканер GScanner

color

указатель на GdkColor, в котором будет храниться результат.

[out]

Возвращает

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, или NULL.

[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

имя движка темы

Возвращаемое значение

Имя файла, если найдено (должно быть освобождено с помощью g_free()), в противном случае NULL.

[тип имя_файла]

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

a GtkSettings

scanner

Сканер, используемый для получения информации о номере строки для сообщения об ошибке, или NULL

pixmap_file

имя файла пикчара для поиска.

Возвращаемое значение

имя файла.

[тип имя_файла]

gtk_rc_get_module_dir ()

gchar *
gtk_rc_get_module_dir (void);

gtk_rc_get_module_dir устарело начиная с версии 3.0 и не должно использоваться в новом коде.

Используйте GtkCssProvider вместо этого.

Возвращает директорию, в которой GTK+ ищет движки тем. Для получения полной информации о поиске движков тем, см. документацию для GTK_PATH в Документация по запуску приложений GTK+.

Возвращаемое значение

директория. (Должна быть освобождена с помощью g_free()).

[тип имя_файла]

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.

[тип имя_файла]

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.

[тип имя_файла]

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.

[полная передача]

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

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 *name;

Имя

gchar *bg_pixmap_name[5];

Имя пиктограммы

PangoFontDescription *font_desc;

Структура PangoFontDescription

GtkRcFlags color_flags[5];

Флаги GtkRcFlags

GdkColor fg[5];

Цвета переднего плана

GdkColor bg[5];

Цвета заднего плана

GdkColor text[5];

Цвета текста

GdkColor base[5];

Цвета базового слоя

gint xthickness;

Толщина по оси X

gint ythickness;

Толщина по оси 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);
};

Члены

create_rc_style ()

parse ()

merge ()

create_style ()

перечисление GtkRcFlags

Устаревшее

Члены

GTK_RC_FG

Устаревшее

GTK_RC_BG

Устаревшее

GTK_RC_TEXT

Устаревшее

GTK_RC_BASE

Устаревшее

Перечисление 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

Устаревшее

Перечисление 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.22/gtk3-Resource-Files.html

Spec-Zone.ru

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