mirror of
https://github.com/rabbibotton/clog.git
synced 2025-12-06 02:30:42 -08:00
singleton demo
This commit is contained in:
parent
f2ae15534c
commit
58d30a60bc
4 changed files with 35 additions and 5 deletions
|
|
@ -25,7 +25,7 @@
|
|||
(let ((body (make-clog-body connection-id)))
|
||||
(funcall *on-new-window* body)))
|
||||
|
||||
(defun initialize (on-new-window
|
||||
(defun initialize (on-new-window-handler
|
||||
&key
|
||||
(host "0.0.0.0")
|
||||
(port 8080)
|
||||
|
|
@ -34,7 +34,7 @@
|
|||
"Inititalze CLOG on a socket using HOST and PORT to serve BOOT-FILE as
|
||||
the default route to establish web-socket connections and static files
|
||||
located at STATIC-ROOT."
|
||||
(setf *on-new-window* on-new-window)
|
||||
(setf *on-new-window* on-new-window-handler)
|
||||
|
||||
(cc:initialize #'on-connect
|
||||
:host host
|
||||
|
|
@ -42,6 +42,13 @@ located at STATIC-ROOT."
|
|||
:boot-file boot-file
|
||||
:static-root static-root))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; set-on-new-window ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(defun set-on-new-window (on-new-window-handler)
|
||||
(setf *on-new-window* on-new-window-handler))
|
||||
|
||||
;;;;;;;;;;;;;;
|
||||
;; shutdown ;;
|
||||
;;;;;;;;;;;;;;
|
||||
|
|
|
|||
|
|
@ -38,8 +38,9 @@ application."
|
|||
|
||||
(defsection @clog-system (:title "CLOG System")
|
||||
"CLOG Startup and Shutdown"
|
||||
(initialize function)
|
||||
(shutdown function))
|
||||
(initialize function)
|
||||
(set-on-new-window function)
|
||||
(shutdown function))
|
||||
|
||||
(defsection @clog-utilities (:title "CLOG Utilities")
|
||||
"CLOG utilities"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
(defpackage #:clog-user
|
||||
(:use #:cl #:clog)
|
||||
(:export hello))
|
||||
(:export start-demo))
|
||||
|
||||
(in-package :clog-user)
|
||||
|
||||
|
|
|
|||
22
demos/02-singleton.lisp
Normal file
22
demos/02-singleton.lisp
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
(defpackage #:clog-user
|
||||
(:use #:cl #:clog)
|
||||
(:export start-demo))
|
||||
|
||||
(in-package :clog-user)
|
||||
|
||||
(defun start-demo ()
|
||||
"How to allow only one CLOG app to be executed. Normally many browsers can
|
||||
can be started with the same app."
|
||||
|
||||
(clog:initialize
|
||||
(lambda (win)
|
||||
(let ((click-target (clog:create-child win "<h1>Hello World!</H1>")))
|
||||
(clog:set-on-click click-target
|
||||
(lambda ()
|
||||
(clog:create-child win "<p>You Clicked me!</p>")))
|
||||
(clog:set-on-new-window
|
||||
(lambda (win)
|
||||
(clog:put-br (clog:html-document win)
|
||||
"Only single connection premitted."))))))
|
||||
|
||||
(clog:open-browser))
|
||||
Loading…
Add table
Add a link
Reference in a new issue