[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