DIRECTORY Commander, CommanderOps, IO, Xl, XTk, XTkWidgets; X11ClipHack: CEDAR PROGRAM IMPORTS Commander, CommanderOps, IO, Xl, XTkWidgets ~ BEGIN CreateInstanceCommand: Commander.CommandProc ~ { ENABLE { Xl.XError => CommanderOps.Failed[err.explanation]; Xl.connectionNotCreated => CommanderOps.Failed[why.reason]; }; container: XTk.Widget ~ XTkWidgets.CreateYStack[]; shell: XTk.Widget ~ XTkWidgets.CreateShell[windowHeader: "clipboard hack", className: $X11ClipHack, child: container, standardMigration: TRUE]; FOR i: INT IN [0..8) DO XTkWidgets.AppendChild[container, XTkWidgets.CreateField[text: IO.PutFR1["%g", IO.int[i]]]]; ENDLOOP; XTkWidgets.RealizeShell[shell]; }; Commander.Register["X11ClipHack", CreateInstanceCommand, "Creates a clip hack widget"]; END. <X11ClipHack.mesa Copyright Σ 1991, 1992 by Xerox Corporation. All rights reserved. Created by Christian Jacobi, April 24, 1991 Christian Jacobi, July 10, 1992 1:53 pm PDT Widget with 8 editable fields. Those fields can be reset, or pushed to, various X cut buffers. Willie-s, January 17, 1992 11:04 am PST Κ•NewlineDelimiter –(cedarcode) style˜code™Kšœ Οeœ7™BK™+K™,K™_K™'K™—šΟk œ˜ Kšœ1˜1—šΟn œžœž˜Kšžœ/˜6—šž˜K˜—šŸœ˜0šžœ˜Kšœ2˜2Kšœ;˜;K˜—Kšœ2˜2Kšœ‰žœ˜šž œž˜Kšœ?žœžœ ˜\Kšžœ˜—Kšœ˜K˜K˜—KšœW˜WKšžœ˜K˜—…—[