Git Product home page Git Product logo

mcclim's Introduction


McCLIM
McCLIM 0.9.8-dev post-"Imbolc"

McCLIM, an implementation of the "Common Lisp Interface Manager CLIM II Specification", is a portable and high-level user interface management system toolkit for Common Lisp. It has a powerful presentation model which allows us to directly link the visual representation of an object to its semantics. It has several high-level programming capabilities that enable us to develp a user interface conviniently; including formatted output, graphics, windowing and commands that are invoked by typing text, keyboard shortcuts or clicking a mouse button.

McCLIM works with Allegro CL, Clozure CL, CLISP, CMUCL, Embeddable CL, the Scieneer CL Common-lisp, SBCL and the LispWorks implementations. Right now the only backend supported by McCLIM is CLX, which ties it to the Xserver on the host system. Any platform capable of running Xserver may run McCLIM applications.

Installing McCLIM

McCLIM is available on Quicklisp. Make sure you have installed a supported Common Lisp implementation and Quicklisp is configured correctly. Then, McCLIM can be installed by entering the following in your REPL:

(ql:quickload "mcclim")

To see if McCLIM works on your host you may load the system with examples and run the example browser application:

(ql:quickload "clim-examples")   ; Load the system with examples.
(clim-demo:demodemo)             ; Run the example browser application.

An Example

  1. Quickload McCLIM by running (ql:quickload "mcclim").
  2. Put the following code in a file example.lisp.
(in-package :common-lisp-user)

(defpackage "APP"
  (:use :clim :clim-lisp)
  (:export "APP-MAIN"))

(in-package :app)

;;; Define a application-frame (a.k.a. application window in traditional GUI's).

(define-application-frame superapp ()
  ()
  ;; :panes section describes different parts of the
  ;; application-frame. This application has only one pane.
  (:panes
   (int :interactor :height 400 :width 600))

  ;; :layouts section describes how the panes are layed out.
  ;; This application has one layout named "default" which has a single pane.
  (:layouts
   (default int)))

;;; Following function launches an instance of "superapp" application-frame.
(defun app-main ()
  (run-frame-top-level (make-application-frame 'superapp)))
  1. Load the file and run:
(app:app-main)

example.lisp

Documentation

You can access the McCLIM manual draft PDF if you want, but it's still a work in progress. Several other CLIM 2 resources are listed on CLiki and McCLIM homepage.

Subdirectory Overview

  • Apps - sample applicatioins. This includes:
    1. Apps/Debugger - Peter Mechleborg's debugger (similar to Slime's).
    2. Apps/Functional-Geometry - Frank Buss and Rainer Joswig's functional geometry package for drawing "Escher" tiles.
    3. Apps/Inspector - Robert Strandh's inspector (similar to slime's).
    4. Apps/Listener - Andy Hefner's Lisp Listener.
    5. Scigraph - BBN's graphing package.
  • Documentation - Contains available documentation such as Documentation for Libraries Drei and ESA, A Guided Tour of CLIM, Specification in LATEX source and Manual in LATEX and texinfo sources (For the time being, texinfo manual contains some additional Documentation not found in LATEX version).
  • Examples - Sources for the examples in clim-demo and some additional examples. These are of varying quality and style; many of them date from when McCLIM was quite incomplete.
  • Extensions - Contains several extensions to CLIM 2 spec, such as fonts, additional layouts, bezier, images etc. Most of them are loaded automatically with McCLIM.
  • Libraries - Contains Drei and ESA Libraries. See Documentation for details.

Important Links

mcclim's People

Contributors

ailisp avatar deterministic-arts avatar dkochmanski avatar ecraven avatar fabriceleal avatar fittestbits avatar gabriel-laddel avatar gas2serra avatar john-a-carroll avatar josrr avatar jstoddard avatar lokedhs avatar manny8888 avatar matthewrock avatar mgi avatar mtstickney avatar npatrick04 avatar nsrahmad avatar otjura avatar phmarek avatar phoe avatar puercopop avatar robert-strandh avatar scymtym avatar slyrus avatar timoore avatar wmannis avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.