LINUX.ORG.RU

>Никак не доганю как поменять цвет и шрифт для :menu-bar ?

А никак. Смирись. :)

Спецификацией CLIM II это не предусмотрено. Однако за этим, казалось бы, упущением кроется идеологический начальный посыл: используем тот вид меню, который предоставляет конкретная среда, в которой работаем. То есть изменение цвета и шрифта меню -- дело сугубо тулкита. Если GTK, то это дело gtkrc и theming. Если это Motif, то у него свои ручки -- это ресурсы X Window System. Если это Windows (бэкенд graphic-forms), то то, что умолчательно Windows предоставляет. Другими словами, принята политика невмешательства в menu-bar. Такая вот правда жизни. Я не могу сейчас точно сказать, правильная эта задумка изначально или нет.

Что касается конкретной среды на базе CLX, то шрифт и фон прибиты гвоздями. То есть регулировка (пока?) невозможна, кроме как править в McCLIM. Эти рычажки можно, конечно же, приделать, но на конкретный цвет и шрифт нельзя закладываться в общем, так как это не будет работать в других средах --- нельзя забывать, что по спецификации это не регулируется. Чтобы изменить шрифт и цвет фона конкретно для McCLIM/CLX, надо подправить *enabled-text-style* и *disabled-text-style* в menu.lisp, C-c C-e на них в SLIME, и будет другой стиль. Ниже по тексту ты увидишь, что при создании меню, они фиксированно используются. А чтобы фон menu-bar подправить, то надо в том же файле в функции make-menu-bar подправить ключ :background *3d-normal-color* (который тоже фиксирован для бэкенда), и тоже ее переопределить C-c C-e.

Если уж действительно нужно, чтобы и шрифт, и вид менялся независимо от бэкенда, то надо свой menu-bar делать, а не использовать системный. Пока так дело обстоит.

Пасхальное яйцо. :) Загрузи McCLIM и сделай:

(setf clim:*default-frame-manager* (make-instance climi::pixie/clx-look :port (clim:find-port)))

Zubok ★★★★★
()

Хм, интересное несоотсветствие обнаружилось. В спецификации CLIM 2.2, взятой с Franz, есть такой гаджет menu-bar (стр. 303). И так как он является pane, то у него имеются :background, :foreground и, стоит думать, :text-style. А вот в спецификации CLIM 2.0, взятой с LispWorks такого гаджета нет, доступного пользователю. Во всяком случае, я не нашел (искал поиском в pdf). McCLIM больше соответсвует 2.0, так как в 2.2 Franz что-то сама добавила:

http://osdir.com/ml/lisp.mcclim.devel/2006-12/msg00011.html

Zubok ★★★★★
()
Ответ на: комментарий от anonymous

>Хм, а чего при пользовании CLX, настройки не беруться из .Xdefaults и .Xresources ?

Нет. Во всяком случае, пока.

Zubok ★★★★★
()
Ответ на: комментарий от anonymous

>Хм, а чего при пользовании CLX, настройки не беруться из .Xdefaults и .Xresources ?

Вообще, сам CLX не является тулкитом, поэтому он только должен предоставлять возможность работы с ресурсами X. В CLX реализована эта функциональность в clx/resource.lisp (аналог Xsm), но использовать ее должен уже более высокий уровень, т. е. непосредственно связка McCLIM/CLX.

Zubok ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.