DIRECTORY XlCursor, XTk, XTkFriends, XTkBasics; XTkBasicsImpl: CEDAR MONITOR IMPORTS XTk, XTkFriends EXPORTS XTkBasics ~ BEGIN inertCursorKey: REF XlCursor.StandardFontCursors ~ NEW[XlCursor.StandardFontCursors ¬ circle]; bareClass: PUBLIC XTk.Class ¬ XTkFriends.CreateClass[[key: $bare, classNameHint: $Bare, cursorKey: inertCursorKey, backgroundKey: $white]]; spaceClass: PUBLIC XTk.Class ¬ XTkFriends.CreateClass[[key: $space, classNameHint: $Bare, cursorKey: inertCursorKey, backgroundKey: $white]]; rulerClass: PUBLIC XTk.Class ¬ XTkFriends.CreateClass[[key: $rule, classNameHint: $Ruler, cursorKey: inertCursorKey, backgroundKey: $black]]; CreateBare: PUBLIC PROC [widgetSpec: XTk.WidgetSpec ¬ []] RETURNS [XTk.Widget] = { RETURN [ XTk.CreateWidget[widgetSpec, bareClass] ]; }; CreateSpace: PUBLIC PROC [widgetSpec: XTk.WidgetSpec ¬ []] RETURNS [XTk.Widget] = { RETURN [ XTk.CreateWidget[widgetSpec, bareClass] ]; }; HSpace: PUBLIC PROC [width: INT _ 1] RETURNS [XTk.Widget] = { RETURN [ CreateSpace[widgetSpec: [geometry: [size: [width: width, height: XTk.dontUse]]]] ]; }; VSpace: PUBLIC PROC [height: INT _ 1] RETURNS [XTk.Widget] = { RETURN [ CreateSpace[widgetSpec: [geometry: [size: [width: XTk.dontUse, height: height]]]] ]; }; CreateRuler: PUBLIC PROC [widgetSpec: XTk.WidgetSpec ¬ []] RETURNS [XTk.Widget] = { RETURN [ XTk.CreateWidget[widgetSpec, rulerClass] ]; }; HRule: PUBLIC PROC [height: INT _ 1] RETURNS [XTk.Widget] = { RETURN [ CreateRuler[widgetSpec: [geometry: [size: [width: XTk.dontUse, height: height]]]] ]; }; VRule: PUBLIC PROC [width: INT _ 1] RETURNS [XTk.Widget] = { RETURN [ CreateRuler[widgetSpec: [geometry: [size: [width: width, height: XTk.dontUse]]]] ]; }; END. | XTkBasicsImpl.mesa Copyright Σ 1992 by Xerox Corporation. All rights reserved. Created by Christian Jacobi, March 25, 1992 8:59 am PST Christian Jacobi, March 25, 1992 9:36 am PST Design rationale: bareClass and spaceClass look isomorphic, but in a more fancy toolkit bareClass would generate real widgets with an X window while spaceClass would generate "gadgets". Κ•NewlineDelimiter ™codešœ™Kšœ Οeœ1™KšžœW˜]K˜K™—šŸ œžœžœ#žœ˜SKšžœ.˜4K˜K˜—š Ÿœžœžœ žœžœ˜=KšžœW˜]K˜K˜—š Ÿœžœžœ žœžœ˜