GGButtons.mesa
Last edited by Bier on August 17, 1985 5:29:51 pm PDT.
Contents: Some Useful Button Classes.
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;
Gargoyle Menu Utilities
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];
Gargoyle Button Utilities
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: BOOLTRUE, init: StateType ← off] RETURNS [stateInfo: TwoState, nextX: INTEGER];
Makes a button at position x, y. The button will always be black when stateInfo.state = on and white when stateInfo.state = off.
SetButtonState: PROC [twoState: TwoState, state: StateType];
Sets the state of the variable and updates the button looks.
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.ROPENIL,
buttonNames: ButtonList,
default: Rope.ROPENIL,
borderOnButtons: BOOLTRUE,
atom: ATOM,
clientdata: REF ANY,
style: StyleChoice,
allInOneRow: BOOLTRUE,
maxWidth: INTEGERLAST[INTEGER]
] RETURNS [EnumTypeRef];
TimeToFlipThru: PROC [event: LIST OF REF ANY];
END.