102 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
<HTML><HEAD><TITLE>Tk Built-In Commands - focus manual page</TITLE></HEAD>
 | 
						|
<BODY bgcolor = #c3c3ff>
 | 
						|
<H2><IMG ALIGN=BOTTOM SRC="./Img/ManPageBlue.gif"> focus</H2>
 | 
						|
<I>Manage the input focus</I><P><IMG ALIGN=TOP SRC="./Img/line-red.gif">
 | 
						|
<H3><A NAME="M2">SYNOPSIS</A></H3>
 | 
						|
(<B>focus</B>)<BR>
 | 
						|
(<B>focus </B><I>window</I>)<BR>
 | 
						|
(<B>focus </B><I>option</I> ?<I>arg arg ...</I>?)<BR>
 | 
						|
<H3><A NAME="M3">DESCRIPTION</A></H3>
 | 
						|
The <B>focus</B> procedure is used to manage the Tk input focus.
 | 
						|
At any given time, one window on each display is designated as
 | 
						|
the <I>focus window</I>;  any key press or key release events for the
 | 
						|
display are sent to that window.
 | 
						|
It is normally up to the window manager to redirect the focus among the
 | 
						|
top-level windows of a display.  For example, some window managers
 | 
						|
automatically set the input focus to a top-level window whenever
 | 
						|
the mouse enters it;  others redirect the input focus only when
 | 
						|
the user clicks on a window.
 | 
						|
Usually the window manager will set the focus
 | 
						|
only to top-level windows, leaving it up to the application to
 | 
						|
redirect the focus among the children of the top-level.
 | 
						|
<P>
 | 
						|
Tk remembers one focus window for each top-level (the most recent
 | 
						|
descendant of that top-level to receive the focus);  when the window
 | 
						|
manager gives the focus
 | 
						|
to a top-level, Tk automatically redirects it to the remembered
 | 
						|
window.  Within a top-level Tk uses an <I>explicit</I> focus model
 | 
						|
by default.  Moving the mouse within a top-level does not normally
 | 
						|
change the focus;  the focus changes only when a widget
 | 
						|
decides explicitly to claim the focus (e.g., because of a button
 | 
						|
click), or when the user types a key such as Tab that moves the
 | 
						|
focus.
 | 
						|
<P>
 | 
						|
The STk procedure <B>Tk:focus-follows-mouse</B> may be invoked to
 | 
						|
create an <I>implicit</I> focus model:  it reconfigures Tk so that
 | 
						|
the focus is set to a window whenever the mouse enters it.
 | 
						|
The STk procedures <B>Tk:focus-next</B> and <B> Tk:focus-prev</B>
 | 
						|
implement a focus order among the windows of a top-level;  they
 | 
						|
are used in the default bindings for Tab and Shift-Tab, among other
 | 
						|
things.
 | 
						|
<P>
 | 
						|
The <B>focus</B> procedure can take any of the following forms:
 | 
						|
<P>
 | 
						|
<DL>
 | 
						|
<DT><A NAME="M4">(<B>focus</B>)</A><DD>
 | 
						|
Returns the path name of the focus window on the display containing
 | 
						|
the application's main window,  or <B>#f</B> if no window in
 | 
						|
this application has the focus on that display.   Note:  it is
 | 
						|
better to specify the display explicitly using <B>:displayof</B>
 | 
						|
(see below) so that the code will work in applications using multiple
 | 
						|
displays.
 | 
						|
<P>
 | 
						|
<DT><A NAME="M5">(<B>focus </B><I>window</I>)</A><DD>
 | 
						|
If the application currently has the input focus on <I>window</I>'s
 | 
						|
display, this procedure resets the input focus for <I>window</I>'s display
 | 
						|
to <I>window</I> and returns an empty string.
 | 
						|
If the application doesn't currently have the  input focus on
 | 
						|
<I>window</I>'s display, <I>window</I> will be remembered as the focus
 | 
						|
for its top-level;  the next time the focus arrives at the top-level,
 | 
						|
Tk will redirect it to <I>window</I>.
 | 
						|
If <I>window</I> is an empty string then the procedure does nothing.
 | 
						|
<P>
 | 
						|
<DT><A NAME="M6">(<B>focus :displayof</B> <I>window</I>)</A><DD>
 | 
						|
Returns the name of the focus window on the display containing <I>window</I>.
 | 
						|
If the focus window for <I>window</I>'s display isn't in this
 | 
						|
application, the return value is an empty list.
 | 
						|
<P>
 | 
						|
<DT><A NAME="M7">(<B>focus :force </B><I>window</I>)</A><DD>
 | 
						|
Sets the focus of <I>window</I>'s display to <I>window</I>, even if
 | 
						|
the application doesn't currently have the input focus for the display.
 | 
						|
This procedure should be used sparingly, if at all.
 | 
						|
In normal usage, an application should not claim the focus for
 | 
						|
itself;  instead, it should wait for the window manager to give it
 | 
						|
the focus.
 | 
						|
If <I>window</I> is an empty string then the procedure does nothing.
 | 
						|
<P>
 | 
						|
<DT><A NAME="M8">(<B>focus :lastfor</B> <I>window</I>)</A><DD>
 | 
						|
Returns the name of the most recent window to have the input focus
 | 
						|
among all the windows in the same top-level as <I>window</I>.
 | 
						|
If no window in that top-level has ever had the input focus, or
 | 
						|
if the most recent focus window has been deleted, then the name
 | 
						|
of the top-level is returned.  The return value is the window that
 | 
						|
will receive the input focus the next time the window manager gives
 | 
						|
the focus to the top-level.
 | 
						|
 | 
						|
<P>
 | 
						|
</DL>
 | 
						|
<H3><A NAME="M9">QUIRKS</A></H3>
 | 
						|
When an internal window receives the input focus, Tk doesn't actually
 | 
						|
set the X focus to that window;  as far as X is concerned, the focus
 | 
						|
will stay on the top-level window containing the window with the focus.
 | 
						|
However, Tk generates FocusIn and FocusOut events just as if the X
 | 
						|
focus were on the internal window.   This approach gets around a
 | 
						|
number of problems that would occur if the X focus were actually moved;
 | 
						|
the fact that the X focus is on the top-level is invisible unless
 | 
						|
you use C code to query the X server directly.
 | 
						|
<H3><A NAME="M10">SEE ALSO</A></H3>
 | 
						|
<B><A HREF="./grab.n.html">grab</A></B>
 | 
						|
<P><IMG ALIGN=TOP SRC="./Img/line-red.gif">
 | 
						|
<A HREF=./STk-hlp.html><IMG ALIGN=BOTTOM SRC="./Img/RefBookBlue.gif"> Back to the <B>STk</B> main page</A>
 | 
						|
</BODY></HTML>
 |