<> <> <> <> <<>> <> <<>> DIRECTORY XTk USING [Class, Widget, WidgetSpec]; XTkContainers: CEDAR DEFINITIONS ~ BEGIN <<>> Widget: TYPE = XTk.Widget; WidgetSpec: TYPE = XTk.WidgetSpec; ContainerWidget: TYPE = Widget; Orientation: TYPE = MACHINE DEPENDENT {inX, inY}; yStack: READONLY XTk.Class; <> xStack: READONLY XTk.Class; <> container: READONLY XTk.Class; <> <<>> CreateYStack: PROC [widgetSpec: WidgetSpec ¬ [], stack: LIST OF Widget ¬ NIL, force: INT ¬ -1] RETURNS [ContainerWidget]; <> <> CreateXStack: PROC [widgetSpec: WidgetSpec ¬ [], stack: LIST OF Widget ¬ NIL, force: INT ¬ -1] RETURNS [ContainerWidget]; <> <> CreateAbut: PROC [widgetSpec: WidgetSpec ¬ [], children: LIST OF Widget ¬ NIL, orient: Orientation ¬ inX, force: INT ¬ -1] RETURNS [ContainerWidget]; <> <> CreateContainer: PROC [widgetSpec: WidgetSpec ¬ [], children: LIST OF Widget ¬ NIL] RETURNS [ContainerWidget]; <> AppendChild: PROC [container: ContainerWidget, child: Widget, startReconfigure: BOOL ¬ TRUE]; <> <> AppendChildren: PROC [container: ContainerWidget, children: LIST OF Widget, startReconfigure: BOOL ¬ TRUE]; <> <> <<>> RemoveChild: PROC [container: ContainerWidget, child: Widget, destroyChild: BOOL ¬ TRUE, startReconfigure: BOOL ¬ TRUE]; <> <> <<>> SetForce: PROC [container: ContainerWidget, force: INT]; <> <<-1 to leave individual sizes; 0 to split equal.>> <> SetVaryingSize: PROC [childOfStack: XTk.Widget, varyingSize: BOOL ¬ TRUE]; <> <> <<>> END.