\begindata{text,539041096}
\textdsversion{12}
\template{default}
\define{global
}
Just as a window system needs a means to determine which window has the input 
focus, so does an ATK document need to know which inset within the document is 
currently handling user input.


If you are editing a document which is, say, a text containing an annotation, 
where do your keystrokes go?  That's the main idea behind input focus.  Only 
one view can have the input focus at a time, although it may decide that 
certain input events get passed along to other, enclosing views.  For example, 
here is a raster inset:


\center{\
\begindata{raster,539353224}
2 0 68266 68266 0 0 179 142
bits 539353224 179 142
Pf0Qe0 |
Pe07fPe0 |
P803fPe0 |
Pg1fPe0 |
Ofcg079fOe0 |
P80019fOe0 |
Of0h3fOe0 |
Oc0g01Pe0 |
O80g1fPe0 |
Og013fPe0 |
NfehQe0 |
Nfch7fPe0 |
Nfc30g3fPe0 |
Nf860183fPe0 |
Nf8401c1fPe0 |
Nf8c0041fPe0 |
Nf080021fPe0 |
Nf0h1fPe0 |
Nf038301fPe0 |
Ne068201fPe0 |
Ne070301fPe0 |
Ne0!301fPe0 |
Nc0h1fPe0 |
Nc0h1fPe0 |
Nc0h1fPe0 |
N80h1fPe0 |
Ni0fPe0 |
Mfei0fPe0 |
Mfci07Pe0 |
Mf8g046007Pe0 |
Mf8g03c003Pe0 |
Mf8i01Pe0 |
Mf0i01Pe0 |
Mf0jPe0 |
Mf0jPe0 |
Me0g0380gPe0 |
Me0g07c0g7fOe0 |
Me0g07c0g7fOe0 |
Me0g07c0g7fOe0 |
Mf0g07c0g4007	Ne0 |
Mf0g07c0gc0gN	e0 |
Mf0g0380gc0g3f	Me0 |
Mf8i0180g7fMe0 |
Mf8h2003hNe0 |
Mfcg046006g01	Ne0 |
Mc2g03c00cg03	Ne0 |
Lfe0180h18g07	Ne0 |
Lfcj30g0fNe0 |
Lf0jc0g1fNe0 |
Le0l3fNe0 |
L80l7fNe0 |
LmOe0 |
Kfel01Oe0 |
Kfcl03Oe0 |
Kf8l07HfeLe0 |
Kf0l0fHfcLe0 |
Ke0l1fHf87fIf1	Ge0 |
Kc0l3fHf07fIc0	Ge0 |
K80l7fHe07fI01	Ge0 |
KmIc03fHfc03G	e0 |
Jfel01I803fHf8	07Ge0 |
Jfel03Ig1fHf0	0fGe0 |
Jfcl07Hfeg0fH	e01fGe0 |
Jfcl0fHfcg07H	c03fGe0 |
Jf8l1fHf8g01H	807fGe0 |
Jf0l3fHf0h7fG	g7fGe0 |
Je0l7fHe0h1ffe	gHe0 |
Je0lIc0h03fc01	He0 |
07Ic0k01I80i38	01He0 |
80I80k03Ii01e0	01g07e0 |
c01fHl07Hfe01	e0i0180g60 |
f001Gfel0fHfc	0238j60h |
fcgGfcl1fHf8g	0em |
feg3ff8l3fHf0	g03m |
G8007f0l7fHe0	g01c0i01Ge0 |
Ge001e0lIc0h70	i03Ge0 |
G90m01I80h38i	03Ge0 |
fen03Ii0ci01G	e0 |
f0n07Hfei06jG	e0 |
c0k3f80g0fHfc	i0340i7fe0 |
e0kf0h1fHf8i01	c0i3fe0 |
Gf0i03f8h3fHf0	jc002h0fe0 |
Ge0h3fGf8h7fH	e0jc004g7c07e0 |
Gc0h7fGf8hIc0	j800cgG03e0 |
G0180g7fGf8g01	I80i01801f03G	c7e0 |
G07c0g7fGf8g03	Ij03g3fIe0 |
fe0ff0g7fGfcg	07Hfej03g7fIe0 |
fc3fGe03fGfcg	0fHfcj02gJe0 |
fcHf03fGfcg1f	Hf8j0203Je0 |
If81fGfcg3fHf0	j010fJe0 |
Ifc1fGfeg7fHe0	kKe0 |
J3fGfegIc0kKe0 |
Lfe01I80kKe0 |
M03Ik01Ke0 |
M07Hfek01Ke0 |
M0fHfck01Ke0 |
M9fHf8k03Ke0 |
MbfHf0k03Ke0 |
Pe0k07Ke0 |
Pc0k07Ke0 |
P80k0fKe0 |
Pl0fKe0 |
Ofel1fKe0 |
Ofcl3fKe0 |
Of8l3fKe0 |
Of0l7fKe0 |
Oe0lLe0 |
Oc0lLe0 |
O80k01Le0 |
Ol03Le0 |
Nfel07Le0 |
Nfel0fLe0 |
Ol1fLe0 |
O80k3fLe0 |
Nfee0k7fLe0 |
Nfc38j01Me0 |
Nf80f80i03Me0 |
Nf0gf0i0fMe0 |
N80g0fc0h1fMe0 |
Ne0k7fMe0 |
Nf8j01Ne0 |
Nfej07Ne0 |
Oc0i3fNe0 |
Of8h01Oe0 |
P80g1fOe0 |
ZHe0 |
ZHe0 |
ZHe0 |
ZHe0 |
ZHe0 |
ZHe0 |
ZHe0 |
ZHe0 |
ZHe0 |
ZHe0 |
ZHe0 |
ZHe0 |
ZHe0 |
ZHe0 |
ZHe0 |
ZHe0 |
ZHe0 |
\enddata{raster, 539353224}
\view{rasterview,539353224,727,0,0}}

You can give the input focus to the raster by clicking in it.  Notice that 
when you do, the raster inset's menus appear, replacing the text inset's 
menus.  However, certain keystrokes, like control-L (redraw the window) get 
passed to enclosing insets to be handled.  (In the case of control-L, it gets 
passed out of the raster view, through the enclosing text view, and up a 
couple of more levels to the ``interaction manager,'' which is an abstract 
controlling entity at the top of the ``view tree.'')


Each inset has its own convention for indicating when it has the input focus. 
 When a textview has the input focus, for instance, it displays the text caret 
(or it highlights the currently-selected region if there is one).  When a 
table inset (below) has the input focus, it displays its row- and 
column-numbers, and the table grid.

\center{\
\begindata{table,539353096}
^These	^table
^are	^cells
\enddata{table,539353096}
\view{spread,539353096,728,0,0}
}
\begindata{table,539282824}
\cols 116 269
\begindata{link,539283336}
Datastream version: 3
$(ANDREWDIR)/doc/AtkTour/Insets
0
0
\begindata{link,539283336}
Datastream version: 2
Insets
2

black
white
\enddata{link,539283336}
\enddata{link,539283336}
	\begindata{text,538491284}
\textdsversion{12}
The ATK inset concept\
\enddata{text,538491284}

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

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

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

\begindata{bp,537558784}
\enddata{bp,537558784}
\view{bpv,537558784,731,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,539041096}
