LINUX.ORG.RU

История изменений

Исправление 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))