<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><pre class="" style="background-color: rgb(255, 255, 255);"><span style="white-space: pre-wrap;" class="">When Object Oberon was released in 1989, this was in fact done. Appendix 3 of the Object Oberon report dated June 1989 contains a description of a basic class library written in OOP style, which essentially corresponds to the Original Oberon viewer system.</span></pre><pre class="" style="background-color: rgb(255, 255, 255);"><span style="white-space: pre-wrap;" class="">For example, there is a core module “Frames" exporting a class “Frame", which in turn defines a set of methods such as Show, Hide, Resize, Move, Copy, Defocus, Neutralize etc. And there is also a module “TFrames” (in analogy to module TextFrames of Original Oberon) exporting a (sub) class “Frame", which defines methods that override some of the basic methods from the base module “Frames”.</span></pre><pre class="" style="background-color: rgb(255, 255, 255);"><span style="white-space: pre-wrap;" class="">But I don’t know how much it was used, and what the experiences were. I haven’t used it myself.</span></pre><pre class="" style="background-color: rgb(255, 255, 255);"><span style="white-space: pre-wrap;" class="">—Andreas</span></pre><pre class="" style="background-color: rgb(255, 255, 255);"><span style="white-space: pre-wrap;" class=""><br class=""></span></pre><pre class="" style="background-color: rgb(255, 255, 255);"><span style="white-space: pre-wrap;" class="">-------------------------------------------------------------------------- </span></pre><pre class="" style="background-color: rgb(255, 255, 255);"><span class="" style="white-space: pre-wrap;">From: Richard Hable informujo at <a href="http://aon.at" class="">aon.at</a> Sun Mar 5 22:56:49 CET 2017<br class=""><div class=""><br class=""></div>Am 2017-03-03 um 11:40 schrieb Andreas Pirklbauer:

> That is exactly right: There are indeed no type extensions in the
> Oberon "inner core" (modules Kernel, FileDir, Files and Modules). And
> almost no type extensions in the "outer core" (modules Input,
> Display, Viewers, Fonts, Texts, Oberon). The one exception I found is
> in module Texts

I think, it would actually be a good thing to have more object
orientation also in the core modules. It could make the system less
static and more adaptable and user friendly.

For example, if module TextFrames contained type-bound procedures based
on the Frame type instead of a collection of static procedures with a
Frame parameter, one could easily adapt its behavior by overriding just
a few selected procedures.

And if all documents were based on a common type with overridable
type-bound command procedures, the user would not have to choose between
commands like "Edit.Store" and "Draw.Store", but simply invoke "Store",
which would automatically call the right procedure according to the
actual document type.

Richard</span></pre></body></html>