Here's a y-or-n-dialog function using cocoa calls. Maybe there was something like it already but I failed to find it.<div>Suggested improvements most welcome: I am just learning ...</div><div><br></div><div><div>(in-package :easygui)</div><div><br></div><div>(defun y-or-n-dialog (message)</div><div>  (let* (dialog content</div><div>         (app (#/sharedApplication ns:ns-application))</div><div>         (yes (make-instance 'ns:ns-button))</div><div>         (no (make-instance 'ns:ns-button))</div><div>         (query (make-instance 'ns:ns-text-field)))</div><div>    (flet ((buttonize (button text x action)</div><div>             (dcc (#/setTitle: button text))</div><div>             (dcc (#/setBezelStyle: button #$NSRoundedBezelStyle))</div><div>             (dcc (#/sizeToFit button))</div><div>             (if (< x 0)</div><div>               (let ((left (- 0 x (ns:ns-rect-width (dcc (#/bounds button))))))</div><div>                 (dcc (#/setFrameOrigin: button (ns:make-ns-point left 9))))</div><div>               (dcc (#/setFrameOrigin: button (ns:make-ns-point x 9))))</div><div>             (dcc (#/addSubview: content button))</div><div>             (dcc (#/setTarget: button app))</div><div>             (dcc (#/setAction: button action))))</div><div>      (dcc (#/setStringValue: query message))</div><div>      (dcc (#/setFrameOrigin: query (ns:make-ns-point 9 48)))</div><div>      (dcc (#/sizeToFit query))</div><div>      (let* ((querybounds (dcc (#/bounds query)))</div><div>             (width (max 100.0 (+ 18.0 (ns:ns-rect-width querybounds))))</div><div>             (rect (ns:make-ns-rect</div><div>                    *window-position-default-x*</div><div>                    *window-position-default-y*</div><div>                    width</div><div>                    (max 90.0 (+ 57.0 (ns:ns-rect-height querybounds))))))</div><div>        (setf dialog (make-instance 'ns:ns-window</div><div>                       :with-content-rect rect</div><div>                       :style-mask (logior #$NSBorderlessWindowMask #$NSTexturedBackgroundWindowMask)</div><div>                       :backing #$NSBackingStoreBuffered ; TODO? Copied from ccl:examples/cocoa/easygui/views.lisp</div><div>                       :defer nil)</div><div>              content (#/contentView dialog))</div><div>        (buttonize yes "Yes" 9 (@selector #/stopModal))</div><div>        (buttonize no "No" (- 9 width) (@selector #/abortModal)))</div><div>      (dcc (#/addSubview: content query))</div><div>      (prog1</div><div>          (eq #$NSRunStoppedResponse (dcc (#/runModalForWindow: app dialog)))</div><div>          (#/close dialog)))))</div></div>