> I even managed to get the cairo-canvas working. > Here is a small sample programm: > > > (require 'asdf) > (require 'cl-cairo2) > (require 'cl-cairo2-x11) > (require 'cells-gtk) > > (defpackage :cell-gtk-cairo (:use :cl :cells-gtk :cells)) > (in-package :cell-gtk-cairo) > > (defparameter *gtk-debug* nil) > > (defmodel my-app (gtk-app) > () > (:default-initargs :title "cells" > :md-name :martin-top > :position :center > :width (c-in 200) :height (c-in 200) > :kids (c-in nil))) > > (init-gtk) > (start-win 'my-app)
I got this far. I had to push :cells-gtk-threads to *features*, then kill the fasls, then load cells-gtk again (to get the start-win function compiled). A window appears, > > ; to destroy the window contents > (progn > (not-to-be (find-widget :cairo-draw)) > (setf (kids (find-widget :martin-top)) nil)) > > (setf > (kids (find-widget :martin-top)) > (list > (mk-vbox > :fm-parent (find-widget :martin-top) > :kids > (kids-list? > (make-kid 'cairo-drawing-area > :expand t :fill t > :width (c-in 40) > :height (c-in 40) > :md-name :cairo-draw) > (mk-button > :label "create rectangle" > :on-clicked > (callback (w e d) > (mk-primitive (find-widget :cairo-draw) > :rectangle > :p1 (c-in (2d:v 10 10)) > :p2 (c-in (2d:v 49 94)) > :filled t > :selectable t > :draggable t > :rgb '(1 0 0)))) > (mk-button > :label "create text-label" > :on-clicked > (callback (w e d) > (mk-primitive (find-widget :cairo-draw) > :text-label > :text "Hallo Welt!" > :p1 (c-in (2d:v 20 20)) > :filled t > :selectable t > :draggable t > :rgb '(1 0 0)))) > (mk-button > :label "create line" > :on-clicked > (callback (w e d) > (mk-primitive (find-widget :cairo-draw) > :line > :p1 (c-in (2d:v 0 0)) > :p2 (c-in (2d:v 49 94)) > :filled t > :selectable t > :draggable t > :rgb '(1 0 0)))))))) > > On compiling this I get a condition "There is no class named CAIRO-DRAWING-AREA." > I just run this in slime. I found out, that you can destroy the > contents of > the window with not-to-be. That is very convenient if you want to > change > the program on the fly. > > I would really like to build a small raytracing program for lens > systems. > But unfortunately I'm somewhat stuck. I still don't understand how to > create new widgets in the cairo panel in cell-style > e.g. a lens which can be moved around or a ray that is refracted at a > surface > and whose angle can be changed by moving the intersection point with > the > mouse. > > I guess it looks really cool once I have this working. > > Martin > _______________________________________________ cells-gtk-devel site list cells-gtk-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/cells-gtk-devel