| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- MODULE window;
- (* One window with text and a Close button. *)
- FROM InOut IMPORT WriteString, WriteLn;
- IMPORT tv;
- VAR e : tv.Event; quit : BOOLEAN; w, t, b, st : tv.ViewPtr; cmd : INTEGER;
- BEGIN
- IF NOT tv.Init() THEN WriteString("not a tty"); WriteLn; HALT END;
- st := tv.NewView(tv.VText, 0, tv.Rows() - 1, tv.Cols(), 1);
- tv.SetText(st, " Drag the title bar, click Close or press Esc");
- tv.AddView(tv.Desk(), st);
- w := tv.NewView(tv.VWindow, 6, 3, 46, 10);
- tv.SetText(w, "Hello");
- t := tv.NewView(tv.VText, 8, 5, 42, 1);
- tv.SetText(t, "This is a TVision-style window.");
- tv.AddView(w, t);
- t := tv.NewView(tv.VText, 8, 6, 42, 1);
- tv.SetText(t, "Move it with the mouse.");
- tv.AddView(w, t);
- b := tv.NewView(tv.VButton, 8, 9, 10, 1);
- tv.SetText(b, "Close"); tv.SetTag(b, tv.cmClose); tv.AddView(w, b);
- tv.AddView(tv.Desk(), w);
- tv.FocusView(b);
- tv.Finish;
- quit := FALSE;
- WHILE NOT quit DO
- IF tv.Resized() THEN tv.Finish END;
- IF tv.ReadEvent(e) THEN
- IF (e.kind = tv.evKey) AND (e.key = tv.kEsc) THEN quit := TRUE
- ELSE
- cmd := tv.HandleEvent(e);
- IF (cmd = tv.cmClose) OR (cmd = tv.cmOK) THEN quit := TRUE END
- END;
- IF NOT quit THEN tv.Finish END
- END
- END;
- tv.Done
- END window.
|