2017-05-12 3 views
0

Je suis en train d'exécuter le script "Bonjour tout le monde" fourni par Clozure pour le pont CCL-cacao:CCL Pont de cacao "bonjour monde" ne fonctionne pas?

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

Chargez le fichier contenant ces formulaires, évaluer (show-rouge-fenêtre) et vous verrez une fenêtre rouge

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)))) 

Mais quand je lance ccl64 et tapez

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

Je viens d'obtenir cette sortie sur le terminal:

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

et rien d'autre semble se produire.

Ai-je raté quelque chose? Je suis nouveau à la fois CL et Cocoa.

Répondre

1

Essayez

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

La page avec l'exemple de la fenêtre rouge était la dernière fois mis à jour 10 ans. One of the other examples de était last modified Il ya 13 jours pour inclure gui:execute-in-gui.