DIRECTORY XTkCommon USING [StyleSpec], XTk USING [Event, Widget, WidgetSpec]; XTkNumberLabel: CEDAR DEFINITIONS ~ BEGIN StyleSpec: TYPE = XTkCommon.StyleSpec; IsNumberLabel: PROC [widget: XTk.Widget] RETURNS [BOOL]; Create: PROC [widgetSpec: XTk.WidgetSpec ¬ [], init: NAT ¬ 0, filter: NumberFilter ¬ NIL, filterData: REF ¬ NIL, style: StyleSpec ¬ [], editable: BOOL _ TRUE] RETURNS [XTk.Widget]; NumberFilter: TYPE = PROC [self: XTk.Widget, filterData: REF, proposedValue: NAT, event: XTk.Event] RETURNS [useValue: NAT _ 0, inhibit: BOOL _ FALSE]; GetVal: PROC [widget: XTk.Widget] RETURNS [value: NAT]; SetVal: PROC [widget: XTk.Widget, value: NAT, event: XTk.Event ¬ NIL]; SetFilter: PROC [widget: XTk.Widget, filter: NumberFilter ¬ NIL, filterData: REF ¬ NIL]; InternalSetVal: PROC [widget: XTk.Widget, value: NAT, event: XTk.Event ¬ NIL]; SetEditable: PROC [widget: XTk.Widget, editable: BOOL]; valueChangedKey: READONLY REF; END. |XTkNumberLabel.mesa Copyright Σ 1992 by Xerox Corporation. All rights reserved. Created by Christian Jacobi, March 31, 1992 12:23:55 pm PST Christian Jacobi, April 20, 1992 3:27 pm PDT A number-label is a widget which displays a number. Predicate whether SetVal and GetVal make sense Creates a number-label widget. Returns current number in widget. Tries to change number label; can be called by anybody (e.g interactive edits). The proposed number will be filtered and if the filter thinks so, the real InternalSetVal procedure is called. event is optional, it is forwarded to registered notifiers Replaces filter. Replaces number of number label; must be called by logical parent only (no filtering will be done). event is optional, it is forwarded to registered notifiers. Allows or disallows interactive edits. Key for notifier. Notifier is called when number changed Κ–(cedarcode) style•NewlineDelimiter ˜code™Kšœ Οeœ1™