Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!wuarchive!uunet!stanford.edu!UUNET.UU.NET!lolita!david From: lolita!david@UUNET.UU.NET Newsgroups: comp.windows.interviews Subject: Viewports and scrolling ..... Message-ID: <9105061618.AA04456@ntlp.com> Date: 6 May 91 16:18:32 GMT Sender: news@shelby.stanford.edu (USENET News System) Organization: Internet-USENET Gateway at Stanford University Lines: 69 This is an InterViews 2.6 question. O.K. I give up. What I want to be able to do is to insert an arbitrary Interactor into something that will allow me to view a specified (smaller) portion of said interactor. I would also like to be ablt to attach ScrollBars to this thing. I would expect the ScrollBars to configure themselves so that I can view all of the interactor. I had thought I was going to be able get this behaviour out of a Viewport, but on futher inspection realized that there wasn't a way to specify the "initial size" of the viewport; it defaults to the size of the inserted interactor. Then I stumbled onto Trays and thought aha! this will do it, only to find out that the scrollbar refused to behave. Below is an example of the Tray/Viewport version. The only problem with this is that the ScrollBar thinks (reasonably) that there's no more resizing to be done. Actually I can move around a bit by using the Up/Down Movers. This doesn't work well, nor in a particularlly inteligent way, so I gotta believe I'm just not doing the right thing. Any help would be apreciated. . . . // Something to scroll around. VBox *listBox = new VBox; listBox->Insert( Message( "The first one")); listBox->Insert( Message( "The second one")); . . . listBox->Insert( Message( "The n'th one")); // Use a viewport here to give something for the scrollbar to talk to. Viewport *theViewer = new Viewport( listBox, TopLeft); // Make a tray with a background the "right size" and // stick theViewer into it. VBox *theSize = new VBox( new VGlue( (Coord)round( .5*inches), 0, 0), new HBox( new HGlue( (Coord)round( 2.5*inches, 0, 0) ); Tray *aTray = new Tray( theSize); aTray->Aligh( TopLeft, theViewer); // Build a Frame suitable for putting into the world // with the above and include a scrollbar for theViewer. MarginFrame *whatWeSee = new MarginFrame( new HBox( aTray, new VScrollBar( theViewer) ), (Coord) round( .5*inches) ); . . . Thanks alot, David Daivd Rivas david@lolita.ntlp.com Northfield Trading L. P. (303) 985-3366