Update of /project/mcclim/cvsroot/mcclim/Looks In directory clnet:/tmp/cvs-serv13084/Looks
Modified Files: pixie.lisp Log Message:
Take out dependencies on case in symbol names. This makes McCLIM sort of work in ACL's so-called modern mode; there have been some CLX fixes recently that may get it all the way there.
Clean up events.lisp.
Add a callback-event, which will be used in ports that get high-level gadget notifications in the event process and need to deliver them to applications.
Changed the implementation of scroll bars. When the drag callback is called, just move the sheet; assume that the gadget itself has updated the value and the graphic representation. add a scroll-bar-values interface that gets and sets all scroll bar values and only updates the bar once. This will break the Beagle back end momentarily.
--- /project/mcclim/cvsroot/mcclim/Looks/pixie.lisp 2003/10/08 17:00:56 1.15 +++ /project/mcclim/cvsroot/mcclim/Looks/pixie.lisp 2006/03/29 10:43:50 1.16 @@ -1,4 +1,4 @@ -(in-package :CLIM-INTERNALS) +(in-package :clim-internals)
;;; ; @@ -341,6 +341,7 @@
; We derive from the slider, since the slider is the same, only ; less so. +;;; XXX Probably should derive from scroll-bar too.
(defconstant +pixie-scroll-bar-pane-thumb-size+ 5000.0) (defconstant +pixie-scroll-bar-thumb-half-height+ 17) @@ -476,6 +477,14 @@ (yb (translate-range-value (+ v ts) minv (+ maxv ts) y1 y2))) (make-rectangle* x1 (- ya 1) x2 (+ yb 1)))))))))
+(defmethod* (setf scroll-bar-values) + (min-value max-value thumb-size value (scroll-bar pixie-scroll-bar-pane)) + (setf (slot-value scroll-bar 'min-value) min-value + (slot-value scroll-bar 'max-value) max-value + (slot-value scroll-bar 'thumb-size) thumb-size + (slot-value scroll-bar 'value) value) + (dispatch-repaint scroll-bar (sheet-region scroll-bar))) + (defmethod handle-event ((pane pixie-scroll-bar-pane) (event pointer-button-release-event)) (with-slots (armed dragging repeating was-repeating) pane (setf was-repeating repeating)