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