[mcclim-devel] Is list-pane not fully implemented?
Stas Boukarev
stassats at gmail.com
Tue Aug 7 17:52:01 UTC 2012
P C <psilocidal at gmail.com> writes:
> Hello,
>
> I've been trying to get my list-panes fully operational, but it seems as I
> take one step forward, something else seems to push me back two steps.
>
> It is frustrating, but I am more grateful to be learning these tools,
> because this is really the only way I will be exposed to CL. It seems that
> at first, my lists didn't seem to want to be nonexclusive. I found out that
> the problem with that was my McCLIM directory in quicklisp had about half
> of the files missing (?). I don't know how that happened. Then after I
> figured that out, when I try to update the items of the list using (setf
> (list-pane-items pane) new-items), it says there is no generic function to
> handle this. Maybe my problem comes from my work around. This is what I did.
>
> (with-slots
> (pane)
> *application-frame*
> (with-slots
> (items)
> pane
> (setf (climi::list-pane-items (find-pane-named *application-frame*
> 'pane)) new-items-list)))
>
> Is all of this necessary? It seems the second (with-slots ...) is not
> necessary.
>
> I've read through the gadgets.lisp and it seems that the defgeneric and
> defmethods are defined appropriately, but (setf list-pane-items) or (setf
> climi::list-pane-items) errors out as no generic function. Is there a way
> better than what I did?
>
> After I use this to update my list, it redisplays with only half of the
> items; 1500 instead of 3000. Is this a limit of the size that a list-pane
> can handle; or is this from my work around?
>
> Also I would like to mention, :scroll-bars and :visible-items keys don't
> work for me. Are these known bugs? When I had :scroll-bars t and tried to
> update my list, the whole screen became transparent except for around the
> borders where it was refracted.
Try this instead:
(define-application-frame test ()
()
(:menu-bar t)
(:panes
(list (make-pane 'list-pane)))
(:layouts
(default
(scrolling (:scroll-bar :vertical)
list))))
(define-test-command (com-add-items :name t :menu t) ()
(let ((list-pane (find-pane-named *application-frame* 'list)))
(setf (clim-extensions:list-pane-items list-pane)
(loop for i to 3000 collect i))))
(defun test ()
(run-frame-top-level (make-application-frame 'test)))
--
With best regards, Stas.
More information about the mcclim-devel
mailing list