Разбирался недавно со связкой Forth + GTK. В принципе, все просто, никакой мороки с объектами, как в Qt.

    1. Понадобится GLADE — построитель интерфейса
    2. В проекте подключаете GTK:

      GeSHi Error: GeSHi could not find the language forth (using path /home/ocoorgua/public_html/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
    3. Инициализируете билдер

      GeSHi Error: GeSHi could not find the language forth (using path /home/ocoorgua/public_html/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
    4. Берете главное окно

      GeSHi Error: GeSHi could not find the language forth (using path /home/ocoorgua/public_html/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
    5. Запускаете все

      GeSHi Error: GeSHi could not find the language forth (using path /home/ocoorgua/public_html/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
    6. Подключение сигналов
      • сначала опишем CALLBACK:

        GeSHi Error: GeSHi could not find the language forth (using path /home/ocoorgua/public_html/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
        Напомню, процедура должна оставить все параметры на стеке и еще положить один — возвращаемый (даже если возвращает void)
      • подключаем сигнал:

        GeSHi Error: GeSHi could not find the language forth (using path /home/ocoorgua/public_html/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
    7. Подводные камни, которые я обнаружил:
      • С-функция, которая возвращает число с плавающей точкой (gdouble), ложит его на стек сопроцессора
      • Но передавать такое число из форта нужно со стека данных:

        GeSHi Error: GeSHi could not find the language forth (using path /home/ocoorgua/public_html/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
    8. Написал небольшую прослойку для интернационализации приложений на основе GNU gettext.
      • строки для перевода отмечаются словами gettext(« и ngettext(«, файлы .glade распознаются автоматически
      • исходники обрабаытваются скриптом i18n (см.файлы проекта)
      • .po-файлы можно переводить
      • запускается скрипт еще раз, после этого приложение будет уже переведено
      • не забываем в начале

        GeSHi Error: GeSHi could not find the language forth (using path /home/ocoorgua/public_html/wp-content/plugins/codecolorer/lib/geshi/) (code 2)

Файлы проекта находятся здесь