From b112cbb0595e686a275b7df825f64f753d53b35d Mon Sep 17 00:00:00 2001 From: David Botton Date: Thu, 11 Feb 2021 22:48:37 -0500 Subject: [PATCH] more stuff in demo 22 --- tutorial/22-tutorial.lisp | 52 +++++++++++++++++++++++++++++++++------ 1 file changed, 44 insertions(+), 8 deletions(-) diff --git a/tutorial/22-tutorial.lisp b/tutorial/22-tutorial.lisp index 357e877..6dc8497 100644 --- a/tutorial/22-tutorial.lisp +++ b/tutorial/22-tutorial.lisp @@ -7,30 +7,66 @@ (defun on-file-count (body) (let ((win (create-gui-window body))) (dotimes (n 100) + ;; window-content is the root element for the clog-gui + ;; windows (create-div (window-content win) :content n)))) (defun on-file-browse (body) (let* ((win (create-gui-window body)) (browser (create-child (window-content win) ""))))) - + +(defun on-file-drawing (body) + (let* ((win (create-gui-window body)) + (canvas (create-canvas (window-content win) :width 600 :height 400)) + (cx (create-context2d canvas))) + (set-border canvas :thin :solid :black) + (fill-style cx :green) + (fill-rect cx 10 10 150 100) + (fill-style cx :blue) + (font-style cx "bold 24px serif") + (fill-text cx "Hello World" 10 150) + (fill-style cx :red) + (begin-path cx) + (ellipse cx 200 200 50 7 0.78 0 6.29) + (path-stroke cx) + (path-fill cx))) + +(defun on-file-movies (body) + (let* ((win (create-gui-window body))) + (create-video (window-content win) :source "https://www.w3schools.com/html/mov_bbb.mp4"))) + +(defun on-help-about (body) + (let* ((about (create-gui-window body + :title "About" + :content "
+
+
CLOG
+
The Common Lisp Omnificent GUI
+

Tutorial 22
+
(c) 2021 - David Botton

" + :width 200 + :height 200))) + (set-on-window-can-size about (lambda (obj) + (declare (ignore obj))())))) + (defun on-new-window (body) (clog-gui-initialize body) (add-class body "w3-cyan") (let* ((menu (create-gui-menu-bar body)) - (icon (create-gui-menu-icon menu)) + (tmp (create-gui-menu-icon menu :on-click #'on-help-about)) (file (create-gui-menu-drop-down menu :content "File")) - (new (create-gui-menu-item file :content "Count" :on-click #'on-file-count)) - (open (create-gui-menu-item file :content "Browse" :on-click #'on-file-browse)) - (save (create-gui-menu-item file :content "Save")) + (tmp (create-gui-menu-item file :content "Count" :on-click #'on-file-count)) + (tmp (create-gui-menu-item file :content "Browse" :on-click #'on-file-browse)) + (tmp (create-gui-menu-item file :content "Drawing" :on-click #'on-file-drawing)) + (tmp (create-gui-menu-item file :content "Movies" :on-click #'on-file-movies)) (help (create-gui-menu-drop-down menu :content "Help")) - (about (create-gui-menu-item help :content "About")) - (fs (create-gui-menu-full-screen menu)))) + (tmp (create-gui-menu-item help :content "About" :on-click #'on-help-about)) + (tmp (create-gui-menu-full-screen menu)))) (run body)) (defun start-tutorial () "Start turtorial." - (initialize #'on-new-window) (open-browser))