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:
BOOL ←
TRUE, 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.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.