CCL Cocoa мост привет мир не работает?

Я пытаюсь запустить сценарий «hello world», предоставленный Clozure для моста CCL-Cocoa:

https://trac.clozure.com/ccl/wiki/CocoaBridge

Загрузите файл, содержащий эти формы, оцените (show-red-window), и вы увидите красное окно.

red-window.ccl
(in-package "CL-USER")

(require "COCOA")

(defclass red-view (ns:ns-view)
  ()
  (:metaclass ns:+ns-object))

(objc:defmethod (#/drawRect: :void) ((self red-view) (rect :<NSR>ect))
  (#/set (#/redColor ns:ns-color))
  (#_NSRectFill (#/bounds self)))

(defun show-red-window ()
  (ccl::with-autorelease-pool
   (let* ((rect (ns:make-ns-rect 0 0 300 300))
      (w (make-instance 'ns:ns-window
                :with-content-rect rect
                :style-mask (logior #$NSTitledWindowMask
                           #$NSClosableWindowMask
                           #$NSMiniaturizableWindowMask)
                :backing #$NSBackingStoreBuffered
                :defer t)))
     (#/setTitle: w #@"Red")
     (#/setContentView: w (#/autorelease (make-instance 'red-view)))
     (#/center w)
     (#/orderFront: w nil)
     (#/contentView w))))

Но когда я запускаю ccl64 и набираю

(load "red-window.ccl")
(show-red-window)

Я просто получаю этот вывод на терминале:

#<RED-VIEW <RedView: 0x4cd530> (#x4CD530)>

и больше ничего не происходит.

Я что-то пропустил? Я новичок в CL и Cocoa.


person shadowtalker    schedule 12.05.2017    source источник


Ответы (1)


Пытаться

(gui:execute-in-gui #'(lambda () (show-red-window)))

Страница с примером красного окна последний раз обновлялась 10 лет назад. Одним из других примеров был последнее изменение 13 дней назад, чтобы включить gui:execute-in-gui.

person Malcolm Still    schedule 03.11.2017