#lang scribble/manual @(require (for-label racket)) @title{EZScroller} Show a subset of items on gui elements@section{categories} GUI>EZ-GUI @section{description} EZScroller is a vertical slider that allows displaying different subsets of a dynamically changing list of objects on a fixed number of views by scrolling. EZScroller is used JITLib guis like link::Classes/NodeProxyEditor::, link::Classes/ProxyMixer::, link::Classes/TdefAllGui::, and link::Classes/PdefAllGui::. @section{examples} @racketblock[ ( w = Window.new("EZScroller test", Rect(100, 400,200, 100)).front; // 5 displays v = { |i| DragBoth.new(w, Rect(0, i * 20, 100, 20)) }.dup(5); // 12 items a = (1..12); e = EZScroller(w, Rect(100,0,14,100), v.size, a.size, { |sc| var startIndex = sc.value.asInteger.postcs; v.do { |drag, i| drag.object_( a[ (startIndex) + i] ? ""); }; e.visible_(sc.numItems > sc.maxItems); // hide when not useful }); e.doAction; ) // change list a, update ezscroller a = (1..4); e.numItems_(a.size); e.doAction; a = (1..8); e.numItems_(a.size); e.doAction; :: ]