From c95f8e1e3e3a4fef6ec06b1a136dac62ddeb2c6d Mon Sep 17 00:00:00 2001 From: David Botton Date: Wed, 17 Mar 2021 12:16:21 -0400 Subject: [PATCH] Add menu from clog-gui to tutorial 26 --- source/clog-gui.lisp | 9 ++++++--- source/clog-web.lisp | 9 ++++++--- tutorial/26-tutorial.lisp | 12 +++++++++++- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/source/clog-gui.lisp b/source/clog-gui.lisp index b0638dd..7b883f5 100644 --- a/source/clog-gui.lisp +++ b/source/clog-gui.lisp @@ -165,7 +165,8 @@ (defun clog-gui-initialize (clog-body &key (w3-css-url "/css/w3.css") (jquery-ui-css "/css/jquery-ui.css") (jquery-ui "/js/jquery-ui.js")) - "Initializes clog-gui and installs a clog-gui object on connection." + "Initializes clog-gui and installs a clog-gui object on connection. +If W3-CSS-URL has not been loaded before is installed unless is nil." (create-clog-gui clog-body) (set-on-full-screen-change (html-document clog-body) (lambda (obj) @@ -179,8 +180,10 @@ (when (window-maximized-p (current-window obj)) (window-normalize (current-window obj)) (window-maximize (current-window obj)))))) - (when w3-css-url - (load-css (html-document clog-body) w3-css-url)) + (unless (connection-data-item clog-body "w3-css") + (when w3-css-url + (setf (connection-data-item clog-body "w3-css") t) + (load-css (html-document clog-body) w3-css-url))) (when jquery-ui-css (load-css (html-document clog-body) jquery-ui-css)) (when jquery-ui diff --git a/source/clog-web.lisp b/source/clog-web.lisp index d8fc51f..4698665 100644 --- a/source/clog-web.lisp +++ b/source/clog-web.lisp @@ -108,10 +108,13 @@ ;;;;;;;;;;;;;;;;;;;;;;;;; (defun clog-web-initialize (clog-body &key (w3-css-url "/css/w3.css")) - "Initializes clog-web and installs a clog-web object on connection." + "Initializes clog-web and installs a clog-web object on connection. +If W3-CSS-URL has not been loaded before is installed unless is nil." (create-clog-web clog-body) - (when w3-css-url - (load-css (html-document clog-body) w3-css-url))) + (unless (connection-data-item clog-body "w3-css") + (when w3-css-url + (setf (connection-data-item clog-body "w3-css") t) + (load-css (html-document clog-body) w3-css-url)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; set-maximum-page-width-in-pixels ;; diff --git a/tutorial/26-tutorial.lisp b/tutorial/26-tutorial.lisp index e3ea5ab..22573b9 100644 --- a/tutorial/26-tutorial.lisp +++ b/tutorial/26-tutorial.lisp @@ -9,14 +9,24 @@ (defpackage #:clog-user - (:use #:cl #:clog #:clog-web) + (:use #:cl #:clog #:clog-web #:clog-gui) (:export start-tutorial)) (in-package :clog-user) (defun on-new-window (body) (clog-web-initialize body) + (clog-gui-initialize body) (setf (title (html-document body)) "Tutorial 26") + ;; Install a menu + (let* ((menu (create-gui-menu-bar body)) + (tmp (create-gui-menu-icon menu :on-click (lambda (obj) + (setf (hash (location body)) "rung2")))) + (tmp (create-gui-menu-item menu :content "About" + :on-click (lambda (obj) + (setf (hash (location body)) "rung2")))) + (tmp (create-gui-menu-full-screen menu))) + (declare (ignore tmp))) ;; rung-1 (let* ((first-rung (create-web-compositor body :html-id "rung1")) (image (create-img first-rung :url-src "/img/windmills.jpg"