Changeset 2837

Show
Ignore:
Timestamp:
03/31/08 15:56:14 (9 months ago)
Author:
ksprotte
Message:

contract and image-tile now use the new rect-publisher

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/projects/bos/m2/config.lisp

    r2396 r2837  
    7474;; Einschalten des Mail-Versands (normalerweise aus) 
    7575(defvar *enable-mails* nil) 
     76 
     77;;; rect-publisher 
     78(defvar *rect-publisher*) 
     79 
  • trunk/projects/bos/m2/geometry.lisp

    r2836 r2837  
    348348own rectangle intersects with RECTANGLE will be notified." 
    349349  (dolist (subscriber (rect-publisher-subscribers publisher)) 
    350     (when (rectangle-intersects-p rectangle (rect-subscriber-rectangle subscriber)) 
     350    (when (rectangle-intersects-p rectangle (rect-subscriber-rectangle subscriber))       
    351351      (funcall (rect-subscriber-callback-fn subscriber) (rect-subscriber-object subscriber))))) 
    352352 
     353 
  • trunk/projects/bos/m2/m2.lisp

    r2834 r2837  
    265265        (error "invalid contract id (wrong type) ~A" id))))) 
    266266 
    267 (defmethod contract-changed ((contract contract)) 
    268   (mapc #'(lambda (tile) (image-tile-changed tile)) (contract-image-tiles contract))) 
     267(defmethod contract-changed ((contract contract))   
     268  (publish-rect-change *rect-publisher* (contract-bounding-box contract))) 
    269269 
    270270(defmethod contract-is-expired ((contract contract)) 
     
    496496  (setf *enable-mails* enable-mails) 
    497497  (setf *website-url* website-url) 
     498  (setf *rect-publisher* (make-rect-publisher)) 
    498499  (unless directory 
    499500    (error ":DIRECTORY parameter not set in m2.rc")) 
  • trunk/projects/bos/m2/map.lisp

    r2371 r2837  
    9595   (layers :initarg :layers :reader image-tile-layers)) 
    9696  (:default-initargs :type :png :changed-time (get-universal-time) :layers '(background areas contracts palette))) 
     97 
     98(defmethod initialize-instance :after ((tile image-tile) &key nw-x nw-y width &allow-other-keys) 
     99  (register-rect-subscriber *rect-publisher* tile 
     100                            (list nw-x nw-y width width) #'image-tile-changed)) 
    97101 
    98102(defmethod image-tile-original-image ((tile image-tile))