[mcclim-cvs] CVS mcclim
ahefner
ahefner at common-lisp.net
Mon Feb 5 02:55:29 UTC 2007
Update of /project/mcclim/cvsroot/mcclim
In directory clnet:/tmp/cvs-serv5175
Modified Files:
frames.lisp
Log Message:
Make :default-initargs work as a parameter to define-application-frame.
--- /project/mcclim/cvsroot/mcclim/frames.lisp 2007/01/04 09:13:25 1.123
+++ /project/mcclim/cvsroot/mcclim/frames.lisp 2007/02/05 02:55:29 1.124
@@ -238,8 +238,9 @@
(defmethod layout-frame ((frame application-frame) &optional width height)
(let ((pane (frame-panes frame)))
- (if (and width (not height))
- (error "LAYOUT-FRAME must be called with both WIDTH and HEIGHT or neither"))
+ (when (and (or width height)
+ (not (and width height)))
+ (error "LAYOUT-FRAME must be called with both WIDTH and HEIGHT or neither"))
(if (and (null width) (null height))
(let ((space (compose-space pane))) ;I guess, this might be wrong. --GB 2004-06-01
(setq width (space-requirement-width space))
@@ -600,7 +601,7 @@
#+clim-mp (event-queue (sheet-event-queue t-l-s)))
(setf (slot-value frame 'top-level-sheet) t-l-s)
(generate-panes fm frame)
- (setf (slot-value frame 'state) :disabled)
+ (setf (slot-value frame 'state) :disabled)
#+clim-mp
(when (typep event-queue 'port-event-queue)
(setf (event-queue-port event-queue)
@@ -795,6 +796,7 @@
(others nil)
(pointer-documentation nil)
(geometry nil)
+ (user-default-initargs nil)
(frame-arg (gensym "FRAME-ARG")))
(loop for (prop . values) in options
do (case prop
@@ -810,6 +812,7 @@
(:top-level (setq top-level (first values)))
(:pointer-documentation (setq pointer-documentation (car values)))
(:geometry (setq geometry values))
+ (:default-initargs (setq user-default-initargs values))
(t (push (cons prop values) others))))
(when (eq command-definer t)
(setf command-definer
@@ -838,7 +841,8 @@
:top-level (list ',(car top-level) ,@(cdr top-level))
:top-level-lambda (lambda (,frame-arg)
(,(car top-level) ,frame-arg
- ,@(cdr top-level))))
+ ,@(cdr top-level)))
+ , at user-default-initargs)
, at others)
;; We alway set the frame class default geometry, so that the
;; user can undo the effect of a specified :geometry option.
@@ -943,11 +947,14 @@
(graft :initform nil :accessor graft)
(manager :initform nil :accessor frame-manager)))
+(defclass menu-unmanaged-top-level-sheet-pane (unmanaged-top-level-sheet-pane)
+ ())
+
(defmethod adopt-frame ((fm frame-manager) (frame menu-frame))
(setf (slot-value fm 'frames) (cons frame (slot-value fm 'frames)))
(setf (frame-manager frame) fm)
(let* ((t-l-s (make-pane-1 fm *application-frame*
- 'unmanaged-top-level-sheet-pane
+ 'menu-unmanaged-top-level-sheet-pane
:name 'top-level-sheet)))
(setf (slot-value frame 'top-level-sheet) t-l-s)
(sheet-adopt-child t-l-s (frame-panes frame))
More information about the Mcclim-cvs
mailing list