<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div>code below works with no warnings:</div><div><br></div><div>The warning is about the "running" variable. You should have declare that special but there is actually no need for this variable at all. runModalForWindow: does run its own modal event loop. Toss your loop, toss your variable.</div><div><br></div><div>The only problem left is that the resulting color panel is a modal dialog that does not look like one: has close button, does not have cancel/OK buttons. Not sure if Cocoa has a real modal color picker. You can still use the Carbon one. It will probably still work in 64bit mode. Anyway, the recommended approach is not to use a modal dialog at all. Create a function with </div><div><br></div><div>(defun USER-PICK-COLOR (Responder-Function ...) </div><div><br></div><div>This responder function would be called every time the user changes the color (use  changeColor: to implement)</div><div><br></div><div>For the sake of MCL compatibility implement it both ways: if there is a Responder-Function use the dialog non-modal, else modal</div><div><br></div><div>Alex</div><div><br></div><div><br></div><div><br></div><div><br></div><div>____________________________</div><div><div>(in-package :ccl)</div><div><br></div><div><br></div><div>(objc:defmethod (#/NSWindowWillCloseNotification :void)  ((self ns:ns-color-panel))</div><div>  (#/stopModal (#/sharedApplication ns:ns-application)))</div><div><br></div><div><br></div><div>(defun USER-PICK-COLOR (&key color (prompt "Pick a color"))</div><div>  (with-autorelease-pool </div><div>      (let ((panel (#/sharedColorPanel ns:ns-color-panel))) </div><div>        (#/setPickerMode: ns:ns-color-panel #$NSWheelModeColorPanel)</div><div>        (#/setTitle: panel prompt)</div><div>        (#/addObserver:selector:name:object:                 ; observe yourself close but</div><div>         (#/defaultCenter ns:ns-notification-center)         ; sadly confound OK & CANCEL</div><div>         panel</div><div>         (objc:\@selector #/NSWindowWillCloseNotification)</div><div>         "NSWindowWillCloseNotification"</div><div>         panel)</div><div>        (when color (#/setColor: panel color))</div><div>        (#/runModalForWindow: (#/sharedApplication ns:ns-application) panel)</div><div>        (#/removeObserver:name:object:                       ; prevent pileup</div><div>         (#/defaultCenter ns:ns-notification-center)</div><div>         panel</div><div>         "NSWindowWillCloseNotification"</div><div>         panel)</div><div>        (#/color panel))))</div><div><br></div><div><br></div><div>#| Examples</div><div><br></div><div>(user-pick-color)</div><div><br></div><div><br></div><div>|#</div></div><br><div><div>On Dec 17, 2008, at 9:56 AM, Arthur W Cater wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">In the code below, which principally defines USER-PICK-COLOR for Mac OS X,<div>why do I get a warning when compiling the objc:defmethod subform?</div><div>(Commenting out that part confirms it as the source of the warning.)<br><div><br></div><div><div>(in-package :easygui)</div><div><br></div><div>(let ((running nil))</div><div><br></div><div>  ; Provokes uncomprehended warning</div><div>  ; Undeclared free variable |-[NSColorPanel NSWindowWillCloseNotification]|</div><div>  (objc:defmethod (#/NSWindowWillCloseNotification :void)</div><div>                             ((self ns:ns-color-panel))</div><div>    (setf running nil)</div><div>    (#/stopModal (easygui::application-object)))</div><div>  </div><div>  (defun application-object nil</div><div>    (#/sharedApplication ns:ns-application))</div><div><br></div><div>  (defun user-pick-color (&key color (prompt "Pick a color") position)</div><div>    "POSITION argument is provided only for Digitool MCL compatibility, it is ignored"</div><div>    (declare (ignore position))</div><div>    (gui::with-autorelease-pool </div><div>        (let* ((panel (#/sharedColorPanel ns:ns-color-panel))) ; find or create the NSColorPanel</div><div>          (#/setPickerMode: ns:ns-color-panel #$NSWheelModeColorPanel)</div><div>          (#/setTitle: panel prompt)</div><div>          (#/addObserver:selector:name:object:                 ; observe yourself close but</div><div>           (#/defaultCenter ns:ns-notification-center)         ; sadly confound OK & CANCEL</div><div>           panel</div><div>           (objc:\@selector #/NSWindowWillCloseNotification)</div><div>           "NSWindowWillCloseNotification"</div><div>           panel)</div><div>          (when color (#/setColor: panel color))</div><div>          (setf running t)</div><div>          (#/runModalForWindow: (easygui::application-object) panel)</div><div>          (do () ((not running)) (sleep 0.1))</div><div>          (#/removeObserver:name:object:                       ; prevent pileup</div><div>           (#/defaultCenter ns:ns-notification-center)</div><div>           panel</div><div>           "NSWindowWillCloseNotification"</div><div>           panel)</div><div>          (#/color panel)))))</div></div></div> _______________________________________________<br>Openmcl-devel mailing list<br><a href="mailto:Openmcl-devel@clozure.com">Openmcl-devel@clozure.com</a><br><a href="http://clozure.com/mailman/listinfo/openmcl-devel">http://clozure.com/mailman/listinfo/openmcl-devel</a><br></blockquote></div><br><div apple-content-edited="true"> <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">Prof. Alexander Repenning</font></p><p style="margin: 0.0px 0.0px 0.0px 0.0px"><br class="khtml-block-placeholder"></p><p style="margin: 0.0px 0.0px 0.0px 0.0px">University of Colorado</p><p style="margin: 0.0px 0.0px 0.0px 0.0px">Computer Science Department</p><p style="margin: 0.0px 0.0px 0.0px 0.0px">Boulder, CO 80309-430</p><p style="margin: 0.0px 0.0px 0.0px 0.0px"><br class="khtml-block-placeholder"></p><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">vCard: <a href="http://www.cs.colorado.edu/~ralex/AlexanderRepenning.vcf">http://www.cs.colorado.edu/~ralex/AlexanderRepenning.vcf</a></font></p><br class="Apple-interchange-newline"></span></span></span></div></span> </div><br></body></html>