Oberon Object Tiler |best|

PROCEDURE SplitViewer*(V: Viewer; x, y: INTEGER); VAR newV: Viewer; splitX: INTEGER; BEGIN splitX := x; IF (splitX > V.frame.X) & (splitX < V.frame.X + V.frame.W) THEN NEW(newV); newV.frame.X := splitX; newV.frame.Y := V.frame.Y; newV.frame.W := V.frame.X + V.frame.W - splitX; newV.frame.H := V.frame.H; V.frame.W := splitX - V.frame.X; newV.obj := V.obj; (* same object, different view *) InsertViewer(V, newV); Restore(V); Restore(newV) END END SplitViewer;

To honor Wirth’s vision, we should remember that an operating system should not manage windows—it should manage objects . And the best way to manage objects is to tile them, neatly, without overlap, and without compromise. Oberon Object Tiler

, which allowed for "Extensible Objects." This meant a "tiler" didn't just hold a static window; it held a live object that could be modified or extended while the system was running. Foundational "Essays" and Sources PROCEDURE SplitViewer*(V: Viewer; x, y: INTEGER); VAR newV:

For a deep dive into the technical and philosophical "solid foundation" of the Oberon system, these primary sources are essential: Foundational "Essays" and Sources For a deep dive

PROCEDURE SplitViewer*(V: Viewer; x, y: INTEGER); VAR newV: Viewer; splitX: INTEGER; BEGIN splitX := x; IF (splitX > V.frame.X) & (splitX < V.frame.X + V.frame.W) THEN NEW(newV); newV.frame.X := splitX; newV.frame.Y := V.frame.Y; newV.frame.W := V.frame.X + V.frame.W - splitX; newV.frame.H := V.frame.H; V.frame.W := splitX - V.frame.X; newV.obj := V.obj; (* same object, different view *) InsertViewer(V, newV); Restore(V); Restore(newV) END END SplitViewer;

To honor Wirth’s vision, we should remember that an operating system should not manage windows—it should manage objects . And the best way to manage objects is to tile them, neatly, without overlap, and without compromise.

, which allowed for "Extensible Objects." This meant a "tiler" didn't just hold a static window; it held a live object that could be modified or extended while the system was running. Foundational "Essays" and Sources

For a deep dive into the technical and philosophical "solid foundation" of the Oberon system, these primary sources are essential: