[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: scroll-bar-scrollee (What is it?)



At  2:28 PM 2/17/94 -0600, Rob Browning wrote:
>What kinds of things can be a scroll bar's scrollee?  The documentation
>says very little about this (that I could find).  Is this beacuse you
>aren't supposed to use it, relying instead on the dialog-item-action
>function?

(typep scrollee 'simple-view) => t

>
>Also, I never got a response to a previous related question so I'll
>rephrase it below.  Any help would be greatly appreciated...
>
>My initial purpose in all this was to figure out the best way to implement
>a 3 column spreadsheet.  So I want three columns that are scrolled with a
>single scrollbar.  I also want it to be able to be relatively large (I
>guess 8K is the upper limit on a singele column since I don't want to
>reimplement the list manager :> ).
>
>In response to a prevoius post Mark A. Tapia, markt@dgp.toronto.edu writes:
>
>>>The array dialog item (array-dialog-item.lisp in the example folder)
>>>handles 2-d arrays the way you want.  I'm not sure about
>>>the upper limit but it does handle 2400 elements.
>
>The problem with the array dialog item is that I'm pretty sure that the
>array-dialog-item will be limited to 8K total number of cells because of
>the list manager's limitations.
>
>I had two initial ideas:
>
>1) Create three one column sequence or array dialog items without scroll
>bars that are scrolled by an independent scrollbar item.

The only reason that the scrollee is restricted to being a view is
that a list of the scroll bars that are attached to it are stored as
one of the properties in its property list. Hence, you should be able
to do this by creating an anonymous simple-view that has no container
but knows about the three sequence dialog items and knows how to scroll
them:

(defclass multiple-scrolling-view (simple-view)
  ((scrollees :initarg :scrollees :accessor scrollees)))

(defmethod scroll-bar-changed ((view multiple-scrolling-view) scroll-bar)
  (dolist (scrollee (scrollees view))
    (scroll-bar-changed scrollee scroll-bar)))

>
>2) Create three one column sequence or array dialog items one of which has
>a scroll bar and use one of their scroll bars to scroll all three.

This would probably work if you put an after method on the dialog item
with the scroll bar, have it see if the scroll position has changed and
if so propogate the change to the other two.

>
>Does anyone have any input about whether or not either of these ideas is
>appropriate or feasible?
>
>I'm not sure that the array-dialog-item won't turn out to be my best
>option, but I'd like to know what is possible before I make my decision.

The array-dialog-item is certainly simpler unless the 8K restriction
gets in your way.