DIRECTORY Buttons, Imager, Rope, TiogaButtons, ViewerClasses; AtomButtonsTypes: CEDAR DEFINITIONS = BEGIN Viewer: TYPE = ViewerClasses.Viewer; GBChoiceList: TYPE = LIST OF GraphicsButtonChoice; GraphicsButtonChoice: TYPE = RECORD [ event: LIST OF REF ANY ]; UpdateGraphicsButtonProc: TYPE = PROC [clientData: REF ANY, stateInfo: GraphicsState]; RepaintProc: TYPE = PROC [dc: Imager.Context, clientData: REF ANY, buttonData: REF ANY, button: Viewer]; GraphicsState: TYPE = REF GraphicsStateObj; GraphicsStateObj: TYPE = RECORD [ button: Viewer ¬ NIL, clientData: REF ANY, buttonData: REF ANY, atom: ATOM, repaintProc: RepaintProc, handleProc: HandleButtonProc, choices: GBChoiceList ]; HandleButtonProc: TYPE = PROC [clientData: REF ANY, event: LIST OF REF ANY]; InitButtonProc: TYPE = PROC [name: Rope.ROPE, clientData: REF ANY, button: Viewer]; InitTwoStateProc: TYPE = PROC [name: Rope.ROPE, clientData: REF ANY, twoState: TwoState]; ConfirmProc: TYPE = PROC [clientData: REF ANY]; StateType: TYPE = {off, on}; TwoState: TYPE = REF TwoStateObj; TwoStateObj: TYPE = RECORD [button: Buttons.Button ¬ NIL, on: BOOL ¬ FALSE, event: LIST OF REF ANY, clientData: REF ANY, handleProc: HandleButtonProc]; ButtonList: TYPE = LIST OF Rope.ROPE; EnumTypeRef: TYPE = REF EnumTypeRec; EnumTypeRec: TYPE = RECORD [ atom: ATOM, namesOfButtons: ButtonList ¬ NIL, -- list of names of buttons in this Enumerated type nextx: CARDINAL, -- next x position in container that client may begin displaying info so that it wont overwrite the buttons nexty: CARDINAL, -- similar to nextx type: DisplayStyle, buttonOn: Buttons.Button ¬ NIL, -- the button currently on for a given enumerated type flipLabel: Viewer ¬ NIL, -- points to the Viewer to re-label clientData: REF ANY ¬ NIL, -- optional data provided by the client and used when the selection notifier procedure is called handleProc: HandleButtonProc ]; StyleChoice: TYPE = {menuSelection, flipThru}; DisplayStyle: TYPE = {menuStyle, flipThruWithTitle, flipThruNoTitle}; Event: TYPE = LIST OF REF ANY; SortedButtonHandle: TYPE = REF SortedButtonHandleObj; SortedButtonHandleObj: TYPE = RECORD [viewer: Viewer, headerButton: TiogaButtons.TiogaButton, sortedButtons: REF ANY, handleProc: HandleButtonProc]; SortedButtonClient: TYPE = REF SortedButtonClientObj; SortedButtonClientObj: TYPE = RECORD [button: TiogaButtons.TiogaButton, name: Rope.ROPE, value: REF ANY, events: LIST OF Event, on: BOOL, next: SortedButtonClient, clientData: REF ANY, handleProc: HandleButtonProc]; ScalarButtonClient: TYPE = REF ScalarButtonClientObj; ScalarButtonClientObj: TYPE = RECORD [button: TiogaButtons.TiogaButton, name: Rope.ROPE, value: REAL, events: LIST OF Event, on: BOOL, next: ScalarButtonClient, clientData: REF ANY, handleProc: HandleButtonProc]; END. zAtomButtonsTypes.mesa Copyright Σ 1989, 1992 by Xerox Corporation. All rights reserved. Last edited by Bier on February 20, 1987 5:11:54 pm PST Contents: Types for AtomButtons and Graphics Buttons. Graphics Button Types Viewers Button Types Two State (On/Off) Button Types Enumerated Type Button Types sortedButtons is either SortedButtonClient or ScalarButtonClient. Κ–(cedarcode) style•NewlineDelimiter ˜codešœ™Kšœ Οeœ6™BKšœ4Οk™7KšΟnœ.™6K™—šž ˜ Kšœ3˜3—K˜KšŸœžœž œ˜%Kšž˜K˜Kšœžœ˜$K˜K™Kšœžœžœžœ˜2šœžœžœ˜%Kšœžœžœžœž˜K˜—Kš œžœžœžœžœ˜VKš œ žœžœ"žœžœžœžœ˜hKšœžœžœ˜+šœžœžœ˜!Kšœžœ˜Kšœ žœžœ˜Kšœ žœžœ˜Kšœžœ˜ Kšœ˜Kšœ˜Kšœ˜Kšœ˜—K˜K™Kšœžœžœ žœžœžœžœžœžœ˜LKš œžœžœ žœžœžœ˜SKš œžœžœ žœžœžœ˜YKš œ žœžœžœžœ˜/K˜K™Kšœ žœ ˜Kšœ žœžœ ˜!Kšœ žœžœžœžœžœ žœžœžœžœžœžœ ˜—K™K™Kš œ žœžœžœžœ˜%Kšœ žœžœ ˜$šœ žœžœ˜Kšœžœ˜ KšœžœΟc3˜UKšœžœ k˜|Kšœžœ ˜$Kšœ˜Kšœžœ 6˜VKšœžœ $˜=Kšœ žœžœžœ `˜{K˜Kšœ˜—K˜Kšœ žœ˜.Kšœžœ4˜FKš œžœžœžœžœžœ˜K˜Kšœžœžœ˜5š œžœžœIžœžœ ˜”KšœA™A—K˜Kšœžœžœ˜5Kšœžœžœ/žœ žœžœ žœžœ žœ(žœžœ ˜ΧKšœžœžœ˜5Kšœžœžœ/žœ žœ žœžœ žœ(žœžœ ˜ΤK˜K˜Kšžœ˜K˜—…— κe