\begindata{text,538513216}
\textdsversion{12}
\template{default}
\define{global
}
The different types of ATK dataobjects and views are part of an 
\italic{object-oriented class hierarchy}.  The classes are implemented in a 
language called \italic{Class}, which is just the C programming language with 
a small set of object-oriented extensions.  [\italic{Class} predates C++ and 
other object-oriented flavors of C.]  All non-C features of Class are confined 
to header files, and the implementation is simply a preprocessor for /bin/cc.


Here is a tiny but interesting portion of the ATK class hierarchy:


\begindata{org,539314952}
  observable
  [291
\begindata{text,539459592}
\textdsversion{12}
\template{default}
An \italic{observable} is an object which can be \italic{observed} by others. 
 To observe an object means to be notified when certain kinds of changes occur 
to it, such as changes in size or content.\
\enddata{text,539459592]
    {
    graphic
    [330
\begindata{text,539694984}
\textdsversion{12}
\template{default}
A \italic{graphic} is a data structure representing a portion of a bitmapped 
display in which lines, pixels, etc., can be drawn.  The graphic class does 
not presuppose the X11 window system.  Graphic can interface with any window 
system.\
\enddata{text,539694984]
    dataobject
    [299
\begindata{text,539694984}
\textdsversion{12}
\template{default}
A \italic{dataobject} is half of an \italic{inset} (the other half being the 
observing \italic{view}).  A dataobject is an observable which can save 
permanent state about itself (in the \italic{datastream).\
}\enddata{text,539694984]
      {
      simpletext
      [191
\begindata{text,539694984}
\textdsversion{12}
\template{default}
A \italic{simpletext} object is one which contains plain ASCII text.  No 
styles, no embedded insets.\
\enddata{text,539694984]
        {
        text
        [170
\begindata{text,539694984}
\textdsversion{12}
\template{default}
A \italic{text} object contains full ATK text, complete with styles and 
insets.\
\enddata{text,539694984]
        }
      raster
      [142
\begindata{text,539694984}
\textdsversion{12}
\template{default}
A \italic{raster} object contains a bitmapped image.\
\enddata{text,539694984]
      }
    view
    [322
\begindata{text,539694984}
\textdsversion{12}
\template{default}
A \italic{view} is something which observes a dataobject and knows how to 
interpret input events.  A view can also install menus.  The view is 
responsible for noticing changes in the dataobject and displaying them as 
appropriate.\
\enddata{text,539694984]
      {
      textview
      [198
\begindata{text,539694984}
\textdsversion{12}
\template{default}
A \italic{textview} knows how to observe, display, and interact with a text 
object.\
\enddata{text,539694984}
stem.  Graphic can int]
      rasterview
      [178
\begindata{text,539694984}
\textdsversion{12}
\template{default}
A \italic{rasterview} knows how to observe, display, and interact with a 
raster object.\
\enddata{text,539694984]
      }
    }

\enddata{org,539314952}
\view{orgv,539314952,732,445,360}
\begindata{table,539282824}
\cols 116 269
\begindata{link,539283080}
Datastream version: 3
$(ANDREWDIR)/doc/AtkTour/Media
0
0
\begindata{link,539283080}
Datastream version: 2
Media
2

black
white
\enddata{link,539283080}
\enddata{link,539283080}
	\begindata{text,538322596}
\textdsversion{12}
Some of the more interesting predefined inset types\
\enddata{text,538322596}

\begindata{link,539283336}
Datastream version: 3
$(ANDREWDIR)/doc/AtkTour/Menu
0
0
\begindata{link,539283336}
Datastream version: 2
Menu
2

black
white
\enddata{link,539283336}
\enddata{link,539283336}
	\begindata{text,538607560}
\textdsversion{12}
Menu of nodes in this tour\
\enddata{text,538607560}

\enddata{table,539282824}
\view{spread,539282824,733,0,0}

\begindata{bp,537558784}
\enddata{bp,537558784}
\view{bpv,537558784,735,0,0}
Copyright 1992 Carnegie Mellon University and IBM.  All rights reserved.

\smaller{\smaller{$Disclaimer: 

Permission to use, copy, modify, and distribute this software and its 

documentation for any purpose is hereby granted without fee, 

provided that the above copyright notice appear in all copies and that 

both that copyright notice, this permission notice, and the following 

disclaimer appear in supporting documentation, and that the names of 

IBM, Carnegie Mellon University, and other copyright holders, not be 

used in advertising or publicity pertaining to distribution of the software 

without specific, written prior permission.



IBM, CARNEGIE MELLON UNIVERSITY, AND THE OTHER COPYRIGHT HOLDERS 

DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 

ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.  IN NO EVENT 

SHALL IBM, CARNEGIE MELLON UNIVERSITY, OR ANY OTHER COPYRIGHT HOLDER 

BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY 

DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 

WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS 

ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 

OF THIS SOFTWARE.

 $

}}\enddata{text,538513216}
