CLOG - The Common Lisp Omnificent GUI
Find a file
2020-12-24 21:29:42 -05:00
demos Add demo and updated read me. 2020-12-23 17:59:42 -05:00
docs Documentation additions. 2020-12-17 22:30:20 -05:00
static-files Flesh out the DOM structure 2020-12-24 21:29:42 -05:00
test Flesh out the DOM structure 2020-12-24 21:29:42 -05:00
.gitignore first commit 2020-12-13 16:21:26 -05:00
clog-base.lisp Flesh out the DOM structure 2020-12-24 21:29:42 -05:00
clog-body.lisp Flesh out the DOM structure 2020-12-24 21:29:42 -05:00
clog-connection.lisp Basic event system 2020-12-22 22:00:37 -05:00
clog-document.lisp Flesh out the DOM structure 2020-12-24 21:29:42 -05:00
clog-location.lisp Flesh out the DOM structure 2020-12-24 21:29:42 -05:00
clog-navigator.lisp Flesh out the DOM structure 2020-12-24 21:29:42 -05:00
clog-system.lisp Flesh out the DOM structure 2020-12-24 21:29:42 -05:00
clog-utilities.lisp Split up clog package mutltiple files. 2020-12-23 16:00:11 -05:00
clog-window.lisp Flesh out the DOM structure 2020-12-24 21:29:42 -05:00
clog.asd Flesh out the DOM structure 2020-12-24 21:29:42 -05:00
clog.lisp Flesh out the DOM structure 2020-12-24 21:29:42 -05:00
LICENSE first commit 2020-12-13 16:21:26 -05:00
make-manual-ecl Added clog:make-mark and make-manual-ecl script. 2020-12-23 16:45:00 -05:00
make-manual-sbcl Add make-manual-sbcl script 2020-12-23 22:07:37 -05:00
README.md Add demo and updated read me. 2020-12-23 17:59:42 -05:00

CLOG - The Common Lisp Omnificent GUI

David Botton david@botton.com

License BSD 3-Clause License

The Common Lisp Omnificient GUI, CLOG for short, uses web technology to produce graphical user interfaces for applications locally or remotely, ie as web applications.

To load this package and use the tests:

  1. cd to the CLOG dir (the dir should be one used by QuickLisp lime ~/common-lisp)
  2. Start emacs/slime or your common lisp repl in that directory.
  3. In the REPL run (ql:quickload :clog)
  4. Then (load "~/common-lisp/clog/test/test-clog.lisp) (clog-test:test)

Documentation for CLOG in markdown can be generated with

(clog:make-markup)

or by running the script if you have ecl installed - make-manual-ecl

Sample CLOG app with code base so far:

(defpackage #:clog-user
  (:use #:cl #:clog)
  (:export hello))

(in-package :clog-user)

(defun hello ()
  "Simple Hello world using CLOG."

  ;; Initialize the CLOG system
  (clog:initialize
   (lambda (win)
     (clog:set-on-click
      (clog:create-child win "<h1>Hello World!</H1>")
      (lambda ()
	(clog:create-child win "<p>You Clicked me!</p>")))))

  (clog:open-browser))

Status:

  • Connection methods

    • Websockets - DONE
    • AJAX/HTML - to do (In 2021 are there browsers not supporting Websockets?)
    • Long Poll - to do (Needed for websites for webcrawlers and firewalls)
    • Direct API access to native browser components - to do
  • HTML bindings and Browser

    • Base system for bindings - DONE
    • Event system - DONE
    • Base Elements (HTML Elements)
    • Canvas - HTML 5 Canvas bindings
    • SVG - HTML SVG vector graphics
    • Multimedia - HTML 5 Audio and Video
    • Styles - CSS Style blocks
    • Window, Navigator, Screen, Location, Document
  • CLOG higher level containers and GUI widgets - to do

  • Database bindings and server side APIs - to do

    • Current CL packages
    • Direct bidings to widgets ete.
  • CLOG Devtools - to do

    • Generate application scaffolding
    • GUI Builder
      • Grid style
      • Page style
    • Electron for native GUIs
  • Plugins - to do

    • General CL systems
    • Widgets
  • Documentation - Auto Generated - DONE