[mdk-re] Re: Отладка GTK-приложений
"Баталов Григорий"
=?iso-8859-1?q?bga_=CE=C1_kgok=2Emurmansk=2Esu?=
Вт Ноя 20 16:42:01 MSK 2001
Tue, 20 Nov 2001 14:27:39 +0300
Aleksey Novodvorsky <aen на altlinux.ru> писал:
AN> gtk ищет $HOME/.gtkrc, а также gtkrc[.language[_conutry][.charset]] ,
AN> причем charset -- в "нормализованном" виде, то есть tolwer и без "-". в
AN> /etc/gtk и в /usr/share .
AN> В gdk есть две функции назначения шрифта : gdk_font_load и
AN> gdk_fontset_load . Во втором случае учитывается описатель "fontset=" из
AN> *gtkrc* , в первом -- "font=" .
AN> Для того, чтобы приложение "узнало" о том, какой национальны gtkrc надо
AN> использовать, необходимо вызвать функцию gtk_set_locale. Функции
AN> setlocale для gtk недостаточно (и не необходимо)! Она включит сообщения
AN> на национальном языке, но не шрифты для них.
AN>
AN> Итак,
AN> 1. Если у Вас "узюзюки" при вводе, то:
AN> -- Попробуйте поискать способ его изменения в настройках приложения.
AN> Иногда в них можно указать шрифт явно, иногда -- нажать кнопку (use
AN> gdk_fontset_load)
AN> -- убедитесь, что путь к кириллическим шрифтам стоит первым в
AN> /etc/X11/fs/config
Одно из приложений - Linpopup. С тех пор, как я перешел
с Mandrake 7.0 RE на Spring, русских букв оно не показывает.
Кнопки со шрифтами в нем нет.
AN> 2. Если узюзюки в виджетах, то:
(Как узнать, какой виджет используется в приложении?)
AN> -- Посмотрите в .gtkrc . Если там есть описатель "font=" , то или
AN> выставите кодировку явно, либо поставьте *-* в конце. Убедитесь также,
AN> что в системе есть шрифт указанного в описании размера в нужной
AN> кодировке.
Вместе с Linpoup-ом шел gtkrc, я подправил шрифт (xfontsel про
такой знает) и положил в $HOME:
--------------------------
style "tooltips"
{
bg[NORMAL] = {0xffff, 0xffff, 0xcccc}
bg[NORMAL] = {0xffff, 0xffff, 0xdf7d}
fontset = "-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-koi8-1"
}
widget "gtk-tooltips" style "tooltips"
--------------------------
Вот /etc/gtk/gtkrc.ru_RU.koi8-r :
--------------------------
style "gtk-default-koi8-r" {
fontset = "-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-koi8-1"
}
class "GtkWidget" style "gtk-default-koi8-r"
--------------------------
В /usr/share/gtkrc.ru много всего, в основном style Gnome*.
AN> -- Если приложение не из пакета ALT, то убедитесь, что автор и/или
AN> мейнтейнер не забыл включить locale main() вызовом gtk_set_locale().
Да, gtk_set_locale() есть. Еще есть такой блок:
--------------------------
/* PARSE gtkrc Theme File - based on code contributed by Brent Verner */
{
char buf[1024];
char *ptr = getenv ("HOME");
sprintf (buf, "%s%s", SHARE_PATH, "/gtkrc");
if (access (buf, R_OK) && ptr != NULL)
sprintf (buf, "%s%s", ptr, "/.gtkrc");
gtk_rc_parse (buf);
}
--------------------------
SHARE_PATH в программе объявлено как '/usr/local/share/LinPopUp',
такой директории нет (видимо, я стер). Непосредственно вызовов
gdk_font[set]_load в программе нет.
--
Баталов Григорий.
---------------------------------------------------------------------------
I am the "ILOVEGNU" signature virus. Just copy me to your signature.
This email was infected under the terms of the GNU General Public License.
Подробная информация о списке рассылки community