mirror of
https://github.com/rabbibotton/clog.git
synced 2025-12-06 02:30:42 -08:00
85 lines
3.4 KiB
Text
Vendored
85 lines
3.4 KiB
Text
Vendored
(defpackage #:<%= (@ sys-name) %>
|
|
(:use #:cl #:clog)
|
|
(:export <%= (@ sys-name) %>-element
|
|
create-<%= (@ sys-name) %>-element
|
|
init-<%= (@ sys-name) %>
|
|
attach-<%= (@ sys-name) %>
|
|
start-test))
|
|
|
|
(in-package :<%= (@ sys-name) %>)
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; Implementation - <%= (@ sys-name) %>-element
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
(defclass <%= (@ sys-name) %>-element (clog-element)()
|
|
(:documentation "<%= (@ sys-name) %> Element Object."))
|
|
|
|
(defgeneric create-<%= (@ sys-name) %>-element (clog-obj &key hidden class html-id auto-place)
|
|
(:documentation "Create a new <%= (@ sys-name) %>-element as child of CLOG-OBJ."))
|
|
|
|
(defmethod create-<%= (@ sys-name) %>-element ((obj clog:clog-obj)
|
|
&key
|
|
(hidden nil)
|
|
(class nil)
|
|
(html-id nil)
|
|
(auto-place t))
|
|
"Create control - used at design time and in code"
|
|
(let ((new-obj (create-div obj
|
|
:class class
|
|
:hidden hidden
|
|
:html-id html-id
|
|
:auto-place auto-place)))
|
|
(set-geometry new-obj :width 200 :height 100)
|
|
(change-class new-obj '<%= (@ sys-name) %>-element)
|
|
(attach-<%= (@ sys-name) %> new-obj)
|
|
new-obj))
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; Events - <%= (@ sys-name) %>-element
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; Properties - <%= (@ sys-name) %>-element
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; Methods - <%= (@ sys-name) %>-element
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; Implementation - js binding
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
(defgeneric init-<%= (@ sys-name) %> (<%= (@ sys-name) %>-element)
|
|
(:documentation "Initialize libraries"))
|
|
|
|
(defmethod init-<%= (@ sys-name) %> ((obj <%= (@ sys-name) %>-element))
|
|
(check-type obj clog:clog-obj)
|
|
;; Only init once
|
|
;; Use load-css for any css files to load
|
|
;; Use load-script for any js files to load
|
|
)
|
|
|
|
(defgeneric attach-<%= (@ sys-name) %> (<%= (@ sys-name) %>-element)
|
|
(:documentation "Initialize plugin"))
|
|
|
|
(defmethod attach-<%= (@ sys-name) %> ((obj <%= (@ sys-name) %>-element))
|
|
(init-<%= (@ sys-name) %> obj))
|
|
|
|
(defun on-test-<%= (@ sys-name) %> (body)
|
|
(clog:debug-mode body)
|
|
;; Use the panel-box-layout to center horizontally
|
|
;; and vertically our div on the screen.
|
|
(let* ((layout (create-panel-box-layout body))
|
|
(test (create-<%= (@ sys-name) %>-element (center-panel layout))))
|
|
(center-children (center-panel layout))))
|
|
|
|
(defun start-test ()
|
|
(initialize 'on-test-<%= (@ sys-name) %>
|
|
:static-root (merge-pathnames "./www/"
|
|
(asdf:system-source-directory :<%= (@ sys-name) %>)))
|
|
(open-browser))
|