From ahefner at common-lisp.net Fri Jun 9 21:10:33 2006 From: ahefner at common-lisp.net (ahefner) Date: Fri, 9 Jun 2006 17:10:33 -0400 (EDT) Subject: [mcclim-cvs] CVS mcclim Message-ID: <20060609211033.83A4279000@common-lisp.net> Update of /project/mcclim/cvsroot/mcclim In directory clnet:/tmp/cvs-serv9589 Modified Files: graphics.lisp Log Message: Fix old-style eval-when. --- /project/mcclim/cvsroot/mcclim/graphics.lisp 2006/03/29 10:43:37 1.52 +++ /project/mcclim/cvsroot/mcclim/graphics.lisp 2006/06/09 21:10:33 1.53 @@ -868,7 +868,7 @@ (defmacro def-graphic-op (name (&rest args)) (let ((method-name (symbol-concat '#:medium- name '*))) - `(eval-when (eval load compile) + `(eval-when (:execute :load-toplevel :compile-toplevel) (defmethod ,method-name ((stream sheet) , at args) (with-sheet-medium (medium stream) (,method-name medium , at args)))))) From dlichteblau at common-lisp.net Sat Jun 10 10:08:49 2006 From: dlichteblau at common-lisp.net (dlichteblau) Date: Sat, 10 Jun 2006 06:08:49 -0400 (EDT) Subject: [mcclim-cvs] CVS mcclim/Backends/gtkairo Message-ID: <20060610100849.E4CB977001@common-lisp.net> Update of /project/mcclim/cvsroot/mcclim/Backends/gtkairo In directory clnet:/tmp/cvs-serv10515 Modified Files: BUGS gadgets.lisp medium.lisp Log Message: Optimize Goatee cursor drawing to make the CLIM Listener usable. * medium.lisp (FLIPPING-REGION): New accessor. (APPLY-FLIPPING-INK): Draw only the affected region. ((SYNC-INK FLIPPING-INK)): Default to the entire sheet. (MEDIUM-DRAW-RECTANGLE*): Set flipping-region to the affected rectangle. Fix menu bar height: * gadgets.lisp ((compose-space gtk-menu-bar)): Rewritten similar to the default method. --- /project/mcclim/cvsroot/mcclim/Backends/gtkairo/BUGS 2006/05/13 19:37:29 1.10 +++ /project/mcclim/cvsroot/mcclim/Backends/gtkairo/BUGS 2006/06/10 10:08:49 1.11 @@ -40,7 +40,7 @@ On windows, all we get is a sans serif font. No serif and notably no monospace font, breaking climacs like bug 3 did. -7a. +(WONTFIX) 7a. [fixed for draw-rectangle, good enough for now] flipping ink takes time proportional to the with the size of the window, not with the size of the shape being drawn @@ -98,7 +98,7 @@ but that doesn't work for gsharp when drawing ellipses. Find out what this is all about. -18. +(WONTFIX) 18. [see 7a, good enough for now] Flipping ink optimization: As suggested by Gilbert, make the temporary pixmap just large enough for the clipping region and the currently visible part of a (scrolled) sheet. Right now we're copying the @@ -117,3 +117,10 @@ 22. medium-draw-ellipse* needs a rewrite. + +23. + Beirc problem: When connecting to a server, the first receiver pane + is created, and suddenly the windows gets unusably large, hiding the + interactor. Replacing the :min-height 800 in receivers.lisp with + :min-height 400 :max-height 400 fixes that, but CLX doesn't have the + same problem. --- /project/mcclim/cvsroot/mcclim/Backends/gtkairo/gadgets.lisp 2006/05/13 19:37:29 1.5 +++ /project/mcclim/cvsroot/mcclim/Backends/gtkairo/gadgets.lisp 2006/06/10 10:08:49 1.6 @@ -301,7 +301,23 @@ (defmethod compose-space ((gadget gtk-menu-bar) &key width height) (declare (ignore width height)) - (make-space-requirement :height 20 :min-height 20 :max-height 20)) + (let* ((widget (native-widget gadget)) + (widgetp widget) + (item nil)) + (unless widgetp + (setf widget (realize-native-widget gadget)) + (setf item (gtk_menu_item_new_with_label "foo")) + (gtk_menu_shell_append widget item) + (gtk_widget_show_all widget)) + (prog1 + (cffi:with-foreign-object (r 'gtkrequisition) + (gtk_widget_size_request widget r) + (cffi:with-foreign-slots ((height) r gtkrequisition) + (make-space-requirement :height height + :min-height height + :max-height height))) + (unless widgetp + (gtk_widget_destroy widget))))) ;;; Vermischtes --- /project/mcclim/cvsroot/mcclim/Backends/gtkairo/medium.lisp 2006/05/13 19:37:29 1.7 +++ /project/mcclim/cvsroot/mcclim/Backends/gtkairo/medium.lisp 2006/06/10 10:08:49 1.8 @@ -34,6 +34,7 @@ (cr :initform nil :initarg :cr :accessor cr) (flipping-original-cr :initform nil :accessor flipping-original-cr) (flipping-pixmap :initform nil :accessor flipping-pixmap) + (flipping-region :accessor flipping-region) (surface :initarg :surface :accessor surface) (last-seen-sheet :accessor last-seen-sheet) (last-seen-region :accessor last-seen-region))) @@ -216,11 +217,15 @@ (cairo_surface_flush from-surface) (cairo_surface_flush to-surface) (let ((gc (gdk_gc_new to-drawable)) - (region (climi::sheet-mirror-region (medium-sheet medium)))) + (region (flipping-region medium))) (gdk_gc_set_function gc :xor) - (gdk_draw_drawable to-drawable gc from-drawable 0 0 0 0 - (floor (bounding-rectangle-max-x region)) - (floor (bounding-rectangle-max-y region))) + (gdk_draw_drawable to-drawable gc from-drawable + (floor (bounding-rectangle-min-x region)) + (floor (bounding-rectangle-min-y region)) + (floor (bounding-rectangle-min-x region)) + (floor (bounding-rectangle-min-y region)) + (ceiling (bounding-rectangle-max-x region)) + (ceiling (bounding-rectangle-max-y region))) (gdk_gc_unref gc)) (cairo_surface_mark_dirty to-surface)) (cairo_destroy (cr medium)) @@ -244,6 +249,7 @@ (setf (flipping-pixmap medium) (gdk_pixmap_new drawable width height -1))))) (setf (cr medium) (gdk_cairo_create pixmap)) + (setf (flipping-region medium) region) (cairo_paint (cr medium)) (sync-transformation medium) (sync-ink medium +white+))))) @@ -516,6 +522,13 @@ (sync-clipping-region medium (medium-clipping-region medium)) (unless filled (sync-line-style medium (medium-line-style medium))) + (when (flipping-original-cr medium) + (setf (flipping-region medium) + (transform-region + (if (medium-sheet medium) + (sheet-native-transformation (medium-sheet medium)) + clim:+identity-transformation+) + (make-rectangle* x1 y1 x2 y2)))) (with-slots (cr) medium (setf x1 (df x1)) (setf y1 (df y1)) From ahefner at common-lisp.net Sat Jun 10 18:20:22 2006 From: ahefner at common-lisp.net (ahefner) Date: Sat, 10 Jun 2006 14:20:22 -0400 (EDT) Subject: [mcclim-cvs] CVS mcclim Message-ID: <20060610182022.5B5FE6800C@common-lisp.net> Update of /project/mcclim/cvsroot/mcclim In directory clnet:/tmp/cvs-serv10987 Modified Files: mcclim.asd Log Message: Add the inspector to mcclim.asd, depend on :mcclim instead of :clim, :clim-looks for examples and applications. --- /project/mcclim/cvsroot/mcclim/mcclim.asd 2006/05/07 19:47:19 1.21 +++ /project/mcclim/cvsroot/mcclim/mcclim.asd 2006/06/10 18:20:22 1.22 @@ -315,9 +315,14 @@ (defsystem :clim-clx-user :depends-on (:clim :clim-clx)) +;;; The actual McCLIM system that people should to use in their ASDF +;;; package dependency lists. +(defsystem :mcclim + :depends-on (:clim-looks)) + ;;; CLIM-Examples depends on having at least one backend loaded. (defsystem :clim-examples - :depends-on (:clim :clim-looks) + :depends-on (:mcclim) :components ((:module "Examples" :components @@ -348,7 +353,7 @@ ;;; This won't load in SBCL, either. I have really crappy code to ;;; extract dependency information from :serial t ASDF systems, but ;;; this comment is too narrow to contain it. -(clim-defsystem (:scigraph :depends-on (:clim :clim-looks)) +(clim-defsystem (:scigraph :depends-on (:mcclim)) ;; The DWIM part of SCIGRAPH "Apps/Scigraph/dwim/package" "Apps/Scigraph/dwim/feature-case" @@ -391,7 +396,7 @@ "Apps/Scigraph/scigraph/demo-frame") (defsystem :clim-listener - :depends-on (:clim :clim-looks #+sbcl :sb-posix) + :depends-on (:mcclim #+sbcl :sb-posix) :components ((:file "Experimental/xpm" :pathname #.(make-pathname :directory '(:relative "Experimental") :name "xpm" :type "lisp")) @@ -407,11 +412,13 @@ (:file "listener" :depends-on ("package" "file-types" "icons" "dev-commands" "util")) #+CMU (:file "cmu-hacks" :depends-on ("package")))))) - -;;; The actual McCLIM system that people should to use in their ASDF -;;; package dependency lists. -(defsystem :mcclim - :depends-on (:clim-looks)) +(defsystem :clouseau + :depends-on (:mcclim) + :serial t + :components + ((:file "Apps/Inspector/package") + (:file "Apps/Inspector/disassembly") + (:file "Apps/Inspector/inspector"))) (defmethod perform :after ((op load-op) (c (eql (find-system :clim)))) (pushnew :clim *features*) From ahefner at common-lisp.net Tue Jun 13 02:00:31 2006 From: ahefner at common-lisp.net (ahefner) Date: Mon, 12 Jun 2006 22:00:31 -0400 (EDT) Subject: [mcclim-cvs] CVS mcclim Message-ID: <20060613020031.8B5116911A@common-lisp.net> Update of /project/mcclim/cvsroot/mcclim In directory clnet:/tmp/cvs-serv12525 Modified Files: encapsulate.lisp Log Message: Fix (setf stream-cursor-position) on encapsulating streams. --- /project/mcclim/cvsroot/mcclim/encapsulate.lisp 2006/03/10 21:58:12 1.19 +++ /project/mcclim/cvsroot/mcclim/encapsulate.lisp 2006/06/13 02:00:31 1.20 @@ -475,8 +475,15 @@ ((stream standard-encapsulating-stream))) ;;; A setf* method, but this should still work... -(def-stream-method (setf stream-cursor-position) - (x y (stream standard-encapsulating-stream))) +;; (It didn't. --Hefner) +;(def-stream-method (setf stream-cursor-position) +; (x y (stream standard-encapsulating-stream))) + +(defmethod* (setf stream-cursor-position) + (x y (stream standard-encapsulating-stream)) + (let ((*original-stream* stream) + (stream (slot-value stream 'stream))) + (setf (stream-cursor-position stream) (values x y)))) (def-stream-method stream-increment-cursor-position ((stream standard-encapsulating-stream) dx dy)) From ahefner at common-lisp.net Tue Jun 13 02:26:47 2006 From: ahefner at common-lisp.net (ahefner) Date: Mon, 12 Jun 2006 22:26:47 -0400 (EDT) Subject: [mcclim-cvs] CVS mcclim Message-ID: <20060613022647.0BD622009@common-lisp.net> Update of /project/mcclim/cvsroot/mcclim In directory clnet:/tmp/cvs-serv14138 Modified Files: recording.lisp Log Message: Fix 'replay' to work on encapsulated streams. --- /project/mcclim/cvsroot/mcclim/recording.lisp 2006/05/28 21:32:43 1.127 +++ /project/mcclim/cvsroot/mcclim/recording.lisp 2006/06/13 02:26:46 1.128 @@ -462,21 +462,24 @@ ()) (defun replay (record stream &optional region) - (stream-close-text-output-record stream) - (when (stream-drawing-p stream) - (with-cursor-off stream ;;FIXME? - (letf (((stream-cursor-position stream) (values 0 0)) - ((stream-recording-p stream) nil) - ;; Is there a better value to bind to baseline? - ((slot-value stream 'baseline) (slot-value stream 'baseline))) - (with-sheet-medium (medium stream) - (let ((transformation (medium-transformation medium))) - (unwind-protect - (progn - (setf (medium-transformation medium) - +identity-transformation+) - (replay-output-record record stream region)) - (setf (medium-transformation medium) transformation)))))))) + (if (typep stream 'encapsulating-stream) + (replay record (encapsulating-stream-stream stream) region) + (progn + (stream-close-text-output-record stream) + (when (stream-drawing-p stream) + (with-cursor-off stream ;;FIXME? + (letf (((stream-cursor-position stream) (values 0 0)) + ((stream-recording-p stream) nil) + ;; Is there a better value to bind to baseline? + ((slot-value stream 'baseline) (slot-value stream 'baseline))) + (with-sheet-medium (medium stream) + (let ((transformation (medium-transformation medium))) + (unwind-protect + (progn + (setf (medium-transformation medium) + +identity-transformation+) + (replay-output-record record stream region)) + (setf (medium-transformation medium) transformation)))))))))) (defmethod replay-output-record ((record compound-output-record) stream &optional region (x-offset 0) (y-offset 0)) From rschlatte at common-lisp.net Mon Jun 26 09:34:10 2006 From: rschlatte at common-lisp.net (rschlatte) Date: Mon, 26 Jun 2006 05:34:10 -0400 (EDT) Subject: [mcclim-cvs] CVS mcclim/Doc/Guided-Tour Message-ID: <20060626093410.B1EC72F02D@common-lisp.net> Update of /project/mcclim/cvsroot/mcclim/Doc/Guided-Tour In directory clnet:/tmp/cvs-serv27783/Doc/Guided-Tour Modified Files: Makefile Log Message: Use GNU awk explicitly when building the Guided Tour document. --- /project/mcclim/cvsroot/mcclim/Doc/Guided-Tour/Makefile 2006/01/30 16:14:01 1.1 +++ /project/mcclim/cvsroot/mcclim/Doc/Guided-Tour/Makefile 2006/06/26 09:34:10 1.2 @@ -13,10 +13,10 @@ fig2dev -L pstex_t $(value $@) -E 1 -p $^ $@ %.cut: %.lisp - awk '/LTAG-end/ { found=found " " active; active="" } \ - { if (active!="") print $$active > active} \ - /LTAG-start/ { split($$2,foo,":"); active=foo[2] } \ - END { print found }' $< + gawk '/LTAG-end/ { found=found " " active; active="" } \ + { if (active!="") print $$active > active} \ + /LTAG-start/ { split($$2,foo,":"); active=foo[2] } \ + END { print found }' $< .PHONY: clean From rschlatte at common-lisp.net Mon Jun 26 11:16:29 2006 From: rschlatte at common-lisp.net (rschlatte) Date: Mon, 26 Jun 2006 07:16:29 -0400 (EDT) Subject: [mcclim-cvs] CVS mcclim/Doc/Guided-Tour Message-ID: <20060626111629.063C852001@common-lisp.net> Update of /project/mcclim/cvsroot/mcclim/Doc/Guided-Tour In directory clnet:/tmp/cvs-serv9147/Doc/Guided-Tour Modified Files: Makefile Log Message: Fix guided-tour build for non-Gnu awks (thanks to Michael Weber) --- /project/mcclim/cvsroot/mcclim/Doc/Guided-Tour/Makefile 2006/06/26 09:34:10 1.2 +++ /project/mcclim/cvsroot/mcclim/Doc/Guided-Tour/Makefile 2006/06/26 11:16:29 1.3 @@ -13,10 +13,10 @@ fig2dev -L pstex_t $(value $@) -E 1 -p $^ $@ %.cut: %.lisp - gawk '/LTAG-end/ { found=found " " active; active="" } \ - { if (active!="") print $$active > active} \ - /LTAG-start/ { split($$2,foo,":"); active=foo[2] } \ - END { print found }' $< + awk '/LTAG-end/ { found=found " " active; active="" } \ + { if (active!="") print > active} \ + /LTAG-start/ { split($$2,foo,":"); active=foo[2] } \ + END { print found }' $< .PHONY: clean From rschlatte at common-lisp.net Thu Jun 29 08:16:02 2006 From: rschlatte at common-lisp.net (rschlatte) Date: Thu, 29 Jun 2006 04:16:02 -0400 (EDT) Subject: [mcclim-cvs] CVS mcclim/Lisp-Dep Message-ID: <20060629081602.5883E6D07E@common-lisp.net> Update of /project/mcclim/cvsroot/mcclim/Lisp-Dep In directory clnet:/tmp/cvs-serv16493/Lisp-Dep Modified Files: fix-openmcl.lisp Log Message: Fix compilation for post-1.0 openmcl ... :mcl is no longer on *features* --- /project/mcclim/cvsroot/mcclim/Lisp-Dep/fix-openmcl.lisp 2004/03/24 15:35:51 1.8 +++ /project/mcclim/cvsroot/mcclim/Lisp-Dep/fix-openmcl.lisp 2006/06/29 08:16:00 1.9 @@ -15,6 +15,8 @@ ;;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;;; Boston, MA 02111-1307 USA. +(in-package :cl-user) + (export 'ccl::stream-finish-output :ccl) (defpackage :clim-mop From rschlatte at common-lisp.net Thu Jun 29 08:16:03 2006 From: rschlatte at common-lisp.net (rschlatte) Date: Thu, 29 Jun 2006 04:16:03 -0400 (EDT) Subject: [mcclim-cvs] CVS mcclim Message-ID: <20060629081603.8A2556D093@common-lisp.net> Update of /project/mcclim/cvsroot/mcclim In directory clnet:/tmp/cvs-serv16493 Modified Files: package.lisp Log Message: Fix compilation for post-1.0 openmcl ... :mcl is no longer on *features* --- /project/mcclim/cvsroot/mcclim/package.lisp 2006/03/30 12:07:59 1.54 +++ /project/mcclim/cvsroot/mcclim/package.lisp 2006/06/29 08:16:02 1.55 @@ -220,7 +220,7 @@ `(#+clisp ,@'(:gray) #+cmu ,@'(:ext) #+scl ,@'(:ext) - #+mcl ,@'(:ccl) + #+(or mcl openmcl) ,@'(:ccl) #+allegro ,@'(:common-lisp :excl :stream) #+harlequin-common-lisp ,@'(:stream) #+sbcl ,@'(:sb-gray))) )