История изменений
Исправление dmitry_vk, (текущая версия) :
Вот минимальный код на cl-gtk2. Код пишу по памяти, не проверяя даже на компилируемость, поэтому может и не заработать. Также и не знаю, заработает ли cl-gtk2 сейчас. Кажется, что есть более живой форк cl-gtk2 - cl-cffi-gtk.
(use-package :cffi)
(use-package :gobject)
(use-package :gdk)
(use-package :glib)
(use-package :iter)
(use-package :pango)
;; надо вставить корректное название библиотеки
(load-foreign-library (:default "libgtkspell-2.0"))
;; Описываем CLOS-класс gtk-spell-checker
;; этот CLOS-класс связан с GObject'овским классом GtkSpellChecker
(define-g-object-class "GtkSpellChecker" gtk-spell-checker
(:superclass g-object :export t :interfaces nil)
())
;; Описываем сишную функцию
;; g-object - это определенный в cl-gtk2
;; CFFI'ный тип для передачи указателей на gobject
(defcfun (%gtk-spell-checker-set-language "gtk_spell_checker_set_language") :boolean
(spell-checker g-object)
(lang :string)
(error :pointer))
;; Функция-обертка; добавляет обработку ошибок
(defun gtk-spell-checker-set-language (spell-checker lang)
(with-g-error (error)
(%gtk-spell-checker-set-language spell-checker lang error)))
;; Описание сишной функции
(defcfun gtk-spell-checker-attach :boolean
(spell-checker g-object)
(text-view g-object))
;; Создание и связывания виджета со спелчекером
(let ((view (make-instance 'text-view))
(spell (make-instance 'gtk-spell-checker)))
(gtk-spell-checker-set-language spell "en_US")
(gtk-spell-checker-attach view spell))
Исходная версия dmitry_vk, :
Вот минимальный код на cl-gtk2. Код пишу по памяти, не проверяя даже на компилируемость, поэтому может и не заработать. Также и не знаю, заработает ли cl-gtk2 сейчас. Кажется, что есть более живой форк cl-gtk2 - cl-cffi-gtk.
(use-package :cffi)
(use-package :gobject)
(use-package :gdk)
(use-package :glib)
(use-package :iter)
(use-package :pango)
;; надо вставить корректное название библиотеки
(load-foreign-library (:default "libgtkspell-2.0"))
;; Описываем CLOS-класс gtk-spell-checker
;; этот CLOS-класс связан с GObject'овским классом GtkSpellChecker
(define-g-object-class "GtkSpellChecker" gtk-spell-checker
(:superclass g-object :export t :interfaces nil)
())
;; Описываем сишную функцию. g-object - это определенный в cl-gtk2 CFFI'ный тип для передачи указателей на gobject
(defcfun (%gtk-spell-checker-set-language "gtk_spell_checker_set_language") :boolean
(spell-checker g-object)
(lang :string)
(error :pointer))
;; Функция-обертка; добавляет обработку ошибок
(defun gtk-spell-checker-set-language (spell-checker lang)
(with-g-error (error)
(%gtk-spell-checker-set-language spell-checker lang error)))
;; Описание сишной функции
(defcfun gtk-spell-checker-attach :boolean
(spell-checker g-object)
(text-view g-object))
;; Создание и связывания виджета со спелчекером
(let ((view (make-instance 'text-view))
(spell (make-instance 'gtk-spell-checker)))
(gtk-spell-checker-set-language spell "en_US")
(gtk-spell-checker-attach view spell))