-- Hello.mesa -- last edit 27-Feb-82 9:55:59 Sturgis DIRECTORY Containers USING[Create], Menus USING [CreateMenu, InsertMenuEntry, Menu, MenuProc], Rope USING [Ref], ViewerMenus USING [Close, Destroy, Grow], ViewerOps USING [CreateChild, CreateViewer, MoveViewer, PaintViewer, SetOpenHeight], ViewerClasses, ViewerSpecs, ViewerTools USING [MakeNewTextBox]; Hello: PROGRAM IMPORTS Containers, Menus, ViewerMenus, ViewerOps, ViewerTools = BEGIN OPEN ViewerClasses, ViewerSpecs; helloContainer: ViewerClasses.Viewer; helloMenu: Menus.Menu ← Menus.CreateMenu[]; textBoxs: ARRAY [0..100) OF Viewer; nextShift: Shift ← right; Shift: TYPE = {left, right}; BuildHelloContainer: PROC = BEGIN helloContainer ← Containers.Create[name: "Hello"]; helloContainer.menu ← helloMenu; ViewerOps.SetOpenHeight[helloContainer, 50]; END; BuildHelloMenu: PROC = BEGIN Menus.InsertMenuEntry[helloMenu, "Destroy", DestroyHello]; Menus.InsertMenuEntry[helloMenu, "Grow", ViewerMenus.Grow]; Menus.InsertMenuEntry[helloMenu, "Close", ViewerMenus.Close]; Menus.InsertMenuEntry[helloMenu, "shift", ShiftHello]; END; DestroyHello: Menus.MenuProc = BEGIN ViewerMenus.Destroy[parent]; END; ShiftHello: Menus.MenuProc = BEGIN movement: INTEGER ← IF nextShift = right THEN 50 ELSE -50; nextShift ← IF nextShift = right THEN left ELSE right; FOR i: CARDINAL IN [0..100) DO ViewerOps.MoveViewer[textBoxs[i], textBoxs[i].wx+movement, textBoxs[i].wy, textBoxs[i].ww, textBoxs[i].wh, FALSE]; ENDLOOP; ViewerOps.PaintViewer[helloContainer]; END; BuildTextSubViewer: PROCEDURE[x, y: INTEGER] RETURNS[Viewer] = BEGIN RETURN[ViewerTools.MakeNewTextBox[helloContainer, x, y, 45, 50, "hi there", FALSE, FALSE]]; END; BuildTextSubViewers: PROCEDURE = BEGIN i: CARDINAL ← 0; FOR J: CARDINAL IN [0..10) DO FOR K: CARDINAL IN [0..10) DO textBoxs[i] ← BuildTextSubViewer[K*50, J*60]; i ← i + 1; ENDLOOP; ENDLOOP; END; -- main code BuildHelloMenu[]; BuildHelloContainer[]; BuildTextSubViewers[]; -- editable, no border END.. -- 14-Jan-82 16:21:12: Sturgis, started Hello.mesa -- 14-Jan-82 17:47:13: The container comes up with the editable text box containing "Hi There". The box is the wrong height, in that it clips "there", and the wrong width in that in does not hold "Hi There" on one line. I can not yet move the text. -- 15-Jan-82 16:31:08: add shift menu item -- 15-Jan-82 17:08:05: make it 100 text boxes, to see how bad the repaint is -- 12-Feb-82 17:06:33: update to a recent version of viewers -- remark: 27-Feb-82 9:56:17: remove the warning messages from compilation