103 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
| <HTML><HEAD><TITLE>Tk Built-In Commands - focus manual page</TITLE></HEAD>
 | |
| <BR>
 | |
| <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"><P>
 | |
| <A HREF=./STk-hlp.html><IMG ALIGN=BOTTOM SRC="./Img/RefBookBlue.gif"> Back to the <B>STk</B> main page</A>
 | |
| </BODY></HTML>
 |