From: Mark Carter
Subject: wxCL: button event handler?
Date: 
Message-ID: <43340c54$0$49008$14726298@news.sunsite.dk>
Anyone got any simple code example for adding a button and setting up a 
mouse click event handler in wxCL? The examples provided in wxCL do not 
show how to do this.
From: Mark Carter
Subject: Re: wxCL: button event handler? - SOLVED
Date: 
Message-ID: <43392dc0$0$49011$14726298@news.sunsite.dk>
Mark Carter wrote:
> Anyone got any simple code example for adding a button and setting up a 
> mouse click event handler in wxCL? The examples provided in wxCL do not 
> show how to do this.

Thanks go to Surendra Singhi for helping me out with this. Below is some 
code which creates a button, and respond to clicks. I think that wxCL is 
something that will really get n00bs like me more interested in Lisp.


;;;button.lisp

;;;This program demonstrates wxButton.


(asdf:operate 'asdf:load-op 'wxcl)

(use-package :wxCL)
(use-package :wxEvent)
(use-package :wxEvtHandler)
(use-package :wxframe)
(use-package :wxMessageDialog)
(use-package :wxPanel)
(use-package :wxSizer)
(use-package :wxWindow)
(use-package :wx_wrapper)
(use-package :wx_main)
(use-package :wxButton)

(setq +button-id+ 5000) ; some assigned id

(defun btn-responder-function (fun frame evt)
     (when evt
       (progn
         (print "btn-responder")
	(show-message-dialog frame "You clicked me" "Response")
	)))


(defun init-func (fun data evt)
   (let ( frame sizer panel )
     (setf frame (wxframe_create nil -1 "wxButton" 10 10 100 100
				wxDefault_Frame_Style))
     (setf sizer (wxboxsizer_create wxVERTICAL))
     (setf panel (wxPanel_Create frame -1 -1 -1 -1 -1 wxTAB_TRAVERSAL))
     (wxwindow_setsizer panel sizer)

     (setf btn-responder (wxcl-create-button panel "Click" :id +button-id+))
     (wxsizer_addwindow sizer btn-responder 0 0 100 nil)

     (wxsizer_setsizehints sizer panel)

     ; register events
     (wxEvtHandler_Connect frame +button-id+ (expEVT_COMMAND_BUTTON_CLICKED)
			  (wxClosure_Create #'btn-responder-function nil))

     (wxwindow_show frame)
     ))


(Eljapp_initializeC (wxclosure_Create (function init-func) nil) 0 nil)