DIRECTORY Buttons, GGInterfaceTypes, Menus, Rope, TiogaButtons, ViewerClasses; GGButtons: CEDAR DEFINITIONS = BEGIN ButtonList: TYPE = GGInterfaceTypes.ButtonList; DisplayStyle: TYPE = GGInterfaceTypes.DisplayStyle; EnumTypeRef: TYPE = GGInterfaceTypes.EnumTypeRef; GargoyleData: TYPE = GGInterfaceTypes.GargoyleData; ScalarButton: TYPE = GGInterfaceTypes.ScalarButton; ScalarButtonClient: TYPE = GGInterfaceTypes.ScalarButtonClient; StateType: TYPE = GGInterfaceTypes.StateType; StyleChoice: TYPE = GGInterfaceTypes.StyleChoice; TwoState: TYPE = GGInterfaceTypes.TwoState; Viewer: TYPE = ViewerClasses.Viewer; MenuEntry: TYPE = GGInterfaceTypes.MenuEntry; QueuedMenuEntry: TYPE = GGInterfaceTypes.QueuedMenuEntry; BuildMenuLine: PROC [menu: Menus.Menu, line: NAT, clientData: REF ANY, entries: LIST OF MenuEntry]; BuildQueuedMenuLine: PROC [menu: Menus.Menu, line: NAT, clientData: REF ANY, entries: LIST OF QueuedMenuEntry]; ButtonType: TYPE = GGInterfaceTypes.ButtonType; ButtonLineEntry: TYPE = GGInterfaceTypes.ButtonLineEntry; PopUpLineEntry: TYPE = GGInterfaceTypes.PopUpLineEntry; UpdateProc: TYPE = GGInterfaceTypes.UpdateProc; BuildButtonLine: PROC [container: Viewer, x, y: NAT, clientData: REF ANY, entries: LIST OF ButtonLineEntry] RETURNS [nextX: INTEGER]; BuildLineOfPopUps: PROC [container: Viewer, x, y: NAT, clientData: REF ANY, entries: LIST OF PopUpLineEntry] RETURNS [nextX: INTEGER]; BuildTwoStateButton: PROC [viewer: Viewer, x,y: INTEGER _ 0, name: Rope.ROPE, action: LIST OF REF ANY, clientData: REF ANY, border: BOOL _ TRUE, init: StateType _ off] RETURNS [stateInfo: TwoState, nextX: INTEGER]; SetButtonState: PROC [twoState: TwoState, state: StateType]; SwitchState: PROC [handle: TwoState]; BuildAngleButtons: PROC [clientData: REF ANY, x: INTEGER _ 0, angleButtonList: LIST OF ScalarButton] RETURNS [nextX: NAT]; BuildRadiiButtons: PROC [clientData: REF ANY, x: INTEGER _ 0, radiiButtonList: LIST OF ScalarButton] RETURNS [nextX: NAT]; BuildScalarButtons: PROC [clientData: REF ANY, header: Rope.ROPE, scalarButtonList: LIST OF ScalarButton] RETURNS [bigStructure: ScalarButtonClient]; AddScalarButton: PROC [prevButton: TiogaButtons.TiogaButton, value: REAL, action: LIST OF REF ANY, on: BOOL, gargoyleData: GargoyleData] RETURNS [button: TiogaButtons.TiogaButton]; BuildEnumTypeSelection: PROC [ viewer: Viewer, x, y: CARDINAL _ 0, title: Rope.ROPE _ NIL, buttonNames: ButtonList, default: Rope.ROPE _ NIL, borderOnButtons: BOOL _ TRUE, atom: ATOM, clientdata: REF ANY, style: StyleChoice, allInOneRow: BOOL _ TRUE, maxWidth: INTEGER _ LAST[INTEGER] ] RETURNS [EnumTypeRef]; TimeToFlipThru: PROC [event: LIST OF REF ANY]; END. hGGButtons.mesa Last edited by Bier on August 17, 1985 5:29:51 pm PDT. Contents: Some Useful Button Classes. Gargoyle Menu Utilities Gargoyle Button Utilities Makes a button at position x, y. The button will always be black when stateInfo.state = on and white when stateInfo.state = off. Sets the state of the variable and updates the button looks. ΚΆ˜Ihead1™J™6J™&šΟk ˜ JšœD˜D—J˜Jšœ œ œ˜Jš˜J˜Icodešœ œ˜/Lšœœ"˜4Lšœ œ ˜1Lšœœ!˜3Lšœœ!˜3Lšœœ'˜?Lšœ œ˜-Lšœ œ ˜1Lšœ œ˜+Jšœœ˜$J˜J™J™Iprocšœ œ˜-šœœ$˜9M˜M˜—MšΟn œœœœœ œœ ˜cMšžœœœœœ œœ˜oJ™J™J™Mšœ œ˜/Mšœœ$˜9šœœ#˜7M˜—Mšž œœ˜/Mšžœœœœœ œœœ œ˜…Mšžœœœœœ œœœ œ˜†M˜šžœœœœ œœœœœœ œœœœ˜ΦLšœ™L™—šžœœ(˜