В X файл ресурсов есть обычный текстовый файл, каждая строка которого задает тот или иной параметр (ресурс) программы. (При этом предполагается, что программу "населяют" именованные объекты, связанные в некоторую иерархию). Общий вид строки следующий:
<имя программы>.<подобъект1>.<подобъект2>. . . <подобъектN>.<имя ресурса>: <значение ресурса> |
Подобная строка задает значение ресурса для подобъектов иерархии объектов программы. Например, запись
myprog.dialogwnd.background: Red |
"говорит", что в программе myprog у объекта с именем dialogwnd параметр background (цвет фона) имеет значение Red (красный цвет).
Вместо имен объектов могут указываться их классы. Обычно класс имеет то же самое имя, что и объект, но начинается с заглавной буквы, например,
Myprog.dialogwnd.Background: Red |
Часть объектов или классов в левой части строки, задающей ресурс, может заменяться символом '*', например, строка
myprog*background: Red |
указывает, что для всех объектов программы myprog ресурс background имеет значение Red.
Связка с помощью символа '.' имеет больший приоритет, чем связка с помощью '*'. Так, если в файле, задающем ресурсы, есть две строки
myprog*background: Red myprog.dialogwnd.background: Green |
то все объекты программы будут иметь ресурс background равный Red, кроме объекта dialogwnd, для которого этот параметр есть Green.