<<>> <> <> <> DIRECTORY Xl USING [dontUse], XTk USING [WidgetSpec], XTkContainers USING [ContainerWidget]; XTkScrollableContainers: CEDAR DEFINITIONS ~ { ScrollableContainerWidget: TYPE = XTkContainers.ContainerWidget; ContainerWidget: TYPE = XTkContainers.ContainerWidget; WidgetSpec: TYPE = XTk.WidgetSpec; RedrawProc: TYPE ~ PROCEDURE [data: REF]; RegisterRedrawProc: PROC [widget: ContainerWidget, redrawProc: RedrawProc, redrawData: REF]; ScrollPosition: PROC [widget: ContainerWidget] RETURNS [position: INT]; <> <<>> ScrollTo: PROC [widget: ContainerWidget, position: INT ¬ 0]; <> Scroll: PROC [widget: ContainerWidget, offset: INT ¬ 0]; <> SetHeight: PROC [widget: ContainerWidget, height: INT]; <> SetGranularity: PROC [widget: ContainerWidget, granularity: INT]; <> ContainerFromScrollable: PROC [scrollable: ScrollableContainerWidget] RETURNS [container: ContainerWidget]; <> Create: PROC [widgetSpec: WidgetSpec ¬ [], height: INT ¬ Xl.dontUse, granularity: INT ¬ Xl.dontUse, redrawProc: RedrawProc ¬ NIL, redrawData: REF ¬ NIL] RETURNS [scrollable: ScrollableContainerWidget]; <> <> }.