The MIT Widget model served as a starting point for the DSM. The MIT Widgets are a spinoff of the Athena Project and the HP Xray toolkit. For an in depth description of the Widget model readers are referred to Asente and Swick (1990).
The principal idea behind MIT's Widgets is to treat graphical interaction objects (e.g. a push button or a scrollbar) as separate objects. Each object is represented as a variable of a certain type. The code and data necessary to implement each graphical object are hidden from the user. The user has a set of functions for interacting with the object i.e. reading or setting any of its resources. Widgets are objects which can be created and destroyed. Every Widget belongs to a class. All Widgets are derived from the same root class - the CoreClass.
The advantage of this method is that all the common code (and data) which every Widget has to have (e.g. creating an X11 window and storing it's id) are provided in the root class. For every new Widget written only the code which is new to this widget has to be written (and maintained).
In order for this to work it is necessary to be able to pass code automatically from one class (e.g. the root class) to other classes, this process is called inheritance. An elegant and natural way of doing this with classes is to implement sub-classes. By declaring a new class to be a sub-class of another class, code and data can be automatically inherited. Widgets implement classes in C using structures.