<<>> <> <> <> <> <<>> <> <> <<>> DIRECTORY Rope, Xl, XTk; XTkPopUps: CEDAR DEFINITIONS ~ BEGIN <> <<>> <> <> <> <> <> <<>> <> <<>> <> <> <<>> <> CreateWidgetProc: TYPE = PROC [parent: XTk.Widget ¬ NIL, closureData: REF ¬ NIL, registerData: REF ¬ NIL, image: REF ¬ NIL, event: XTk.Event ¬ NIL] RETURNS [XTk.Widget]; <> <> <<>> WidgetCreateClosure: TYPE = REF WidgetCreateClosureRec; WidgetCreateClosureRec: TYPE = RECORD [creator: CreateWidgetProc, closureData: REF]; ChoiceList: TYPE = LIST OF Choice; Choice: TYPE = RECORD [ image: REF ¬ NIL, <> key <>: REF ANY ¬ NIL, <> <> <<(context: for base button no base selection is made)>> impl: REF ANY ¬ NIL, <> <> help: REF ¬ NIL, <> notify: XTk.WidgetNotifyProc ¬ NIL <> ]; CreateSimplePopUpButton: PROC [text: Rope.ROPE ¬ NIL, list: ChoiceList, defaultNotify: XTk.WidgetNotifyProc, notifyTQ: XTk.TQ ¬ NIL, registerData: REF ¬ NIL, help: Rope.ROPE ¬ NIL] RETURNS [button: XTk.Widget]; <> CreatePopUpButton: PROC [text: Rope.ROPE ¬ NIL, createMenu: WidgetCreateClosure, registerData: REF ¬ NIL, image: REF ¬ NIL, help: Rope.ROPE ¬ NIL] RETURNS [button: XTk.Widget]; <> WidgetCreateClosureFromChoiceList: PROC [list: ChoiceList, defaultNotify: XTk.WidgetNotifyProc, notifyTQ: XTk.TQ ¬ NIL] RETURNS [closure: WidgetCreateClosure]; <> <> <> RegisterBaseSelection: PROC [base: XTk.Widget, notify: XTk.WidgetNotifyProc, registerData, callData: REF ¬ NIL, notifyTQ: XTk.TQ ¬ NIL]; <> <> <> <> <<>> SimplePopUpWithRegularShell: PROC [list: ChoiceList, defaultNotify: XTk.WidgetNotifyProc, notifyTQ: XTk.TQ ¬ NIL, screen: Xl.Screen ¬ NIL, pos: Xl.Point ¬ [-1, -1], registerData: REF ¬ NIL, event: Xl.Event ¬ NIL, header: Rope.ROPE ¬ NIL, helpHandle: REF ¬ NIL]; <> <<>> PopUpWithRegularShell: PROC [createMenu: WidgetCreateClosure, screen: Xl.Screen ¬ NIL, pos: Xl.Point ¬ [-1, -1], registerData: REF ¬ NIL, image: REF ¬ NIL, event: Xl.Event ¬ NIL, header: Rope.ROPE ¬ NIL, helpHandle: REF ¬ NIL]; <> <<>> NullNotify: XTk.WidgetNotifyProc; <> <> PseudoBase: TYPE = <> REF; <> <<>> PopCarrier: TYPE = REF; <> <<>> CreatePseudoBase: PROC [registerData: REF ¬ NIL] RETURNS [PseudoBase]; <> <> <<>> MakeItBase: PROC [base: XTk.Widget, registerData: REF ¬ NIL, createMenu: WidgetCreateClosure ¬ NIL, image: REF ¬ NIL, help: Rope.ROPE ¬ NIL]; <> <> <> SetMenuCreator: PROC [carrier: PopCarrier, createMenu: WidgetCreateClosure ¬ NIL]; <> <<>> SetHelp: PROC [carrier: PopCarrier, help: Rope.ROPE ¬ NIL]; <> <<>> Select: PROC [choice: XTk.Widget, event: XTk.Event]; <> <> <<>> TearDown: PROC [carrier: PopCarrier]; <> <> <> <<>> PopUp: PROC [pseudoBase: PseudoBase, event: XTk.Event, parentCarrier: PopCarrier ¬ NIL, image: REF ¬ NIL, pos: Xl.Point ¬ [-1, -1]]; <> <> <> <> END. <<>>