📄 bindtable.3
字号:
'\"'\" Copyright (c) 1994 The Regents of the University of California.'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.'\"'\" See the file "license.terms" for information on usage and redistribution'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.'\" '\" SCCS: @(#) BindTable.3 1.5 96/03/26 18:03:09'\" .so man.macros.TH Tk_CreateBindingTable 3 4.0 Tk "Tk Library Procedures".BS.SH NAMETk_CreateBindingTable, Tk_DeleteBindingTable, Tk_CreateBinding, Tk_DeleteBinding, Tk_GetBinding, Tk_GetAllBindings, Tk_DeleteAllBindings, Tk_BindEvent \- invoke scripts in response to X events.SH SYNOPSIS.nf\fB#include <tk.h>\fR.spTk_BindingTable\fBTk_CreateBindingTable(\fIinterp\fB)\fR.sp\fBTk_DeleteBindingTable(\fIbindingTable\fB)\fR.spunsigned long\fBTk_CreateBinding(\fIinterp, bindingTable, object, eventString, script, append\fB)\fR.spint\fBTk_DeleteBinding(\fIinterp, bindingTable, object, eventString\fB)\fR.spchar *\fBTk_GetBinding(\fIinterp, bindingTable, object, eventString\fB)\fR.sp\fBTk_GetAllBindings(\fIinterp, bindingTable, object\fB)\fR.sp\fBTk_DeleteAllBindings(\fIbindingTable, object\fB)\fR.sp\fBTk_BindEvent(\fIbindingTable, eventPtr, tkwin, numObjects, objectPtr\fB)\fR.SH ARGUMENTS.AS Tk_BindingTable bindingTable.AP Tcl_Interp *interp inInterpreter to use when invoking bindings in binding table. Alsoused for returning results and errors from binding procedures..AP Tk_BindingTable bindingTable inToken for binding table; must have been returned by some previouscall to \fBTk_CreateBindingTable\fR..AP ClientData object inIdentifies object with which binding is associated..AP char *eventString inString describing event sequence..AP char *script inTcl script to invoke when binding triggers..AP int append inNon-zero means append \fIscript\fR to existing script for binding,if any; zero means replace existing script with new one..AP XEvent *eventPtr inX event to match against bindings in \fIbindingTable\fR..AP Tk_Window tkwin inIdentifier for any window on the display where the event occurred.Used to find display-related information such as key maps..AP int numObjects inNumber of object identifiers pointed to by \fIobjectPtr\fR..AP ClientData *objectPtr inPoints to an array of object identifiers: bindings will be consideredfor each of these objects in order from first to last..BE.SH DESCRIPTION.PPThese procedures provide a general-purpose mechanism for creatingand invoking bindings.Bindings are organized in terms of \fIbinding tables\fR.A binding table consists of a collection of bindings plus a historyof recent events.Within a binding table, bindings are associated with \fIobjects\fR.The meaning of an object is defined by clients of the binding package.For example, Tk keeps uses one binding table to hold all of the bindingscreated by the \fBbind\fR command.For this table, objects are pointers to strings such as window names, classnames, or other binding tags such as \fBall\fR.Tk also keeps a separate binding table for each canvas widget, which managesbindings created by the canvas's \fBbind\fR widget command; withinthis table, an object is either a pointer to the internal structure for acanvas item or a Tk_Uid identifying a tag..PPThe procedure \fBTk_CreateBindingTable\fR creates a new bindingtable and associates \fIinterp\fR with it (when bindings in thetable are invoked, the scripts will be evaluated in \fIinterp\fR).\fBTk_CreateBindingTable\fR returns a token for the table, whichmust be used in calls to other procedures such as \fBTk_CreateBinding\fRor \fBTk_BindEvent\fR..PP\fBTk_DeleteBindingTable\fR frees all of the state associatedwith a binding table.Once it returns the caller should not use the \fIbindingTable\fRtoken again..PP\fBTk_CreateBinding\fR adds a new binding to an existing table.The \fIobject\fR argument identifies the object with which thebinding is to be associated, and it may be any one-word value.Typically it is a pointer to a string or data structure.The \fIeventString\fR argument identifies the event or sequenceof events for the binding; see the documentation for the\fBbind\fR command for a description of its format.\fIscript\fR is the Tcl script to be evaluated when the bindingtriggers.\fIappend\fR indicates what to do if there alreadyexists a binding for \fIobject\fR and \fIeventString\fR: if \fIappend\fRis zero then \fIscript\fR replaces the old script; if \fIappend\fRis non-zero then the new script is appended to the old one.\fBTk_CreateBinding\fR returns an X event mask for all the eventsassociated with the bindings.This information may be useful to invoke \fBXSelectInput\fR toselect relevant events, or to disallow the use of certain eventsin bindings.If an error occurred while creating the binding (e.g., \fIeventString\fRrefers to a non-existent event), then 0 is returned and an errormessage is left in \fIinterp->result\fR..PP\fBTk_DeleteBinding\fR removes from \fIbindingTable\fR thebinding given by \fIobject\fR and \fIeventString\fR, ifsuch a binding exists.\fBTk_DeleteBinding\fR always returns TCL_OK.In some cases it may reset \fIinterp->result\fR to the defaultempty value..PP\fBTk_GetBinding\fR returns a pointer to the script associatedwith \fIeventString\fR and \fIobject\fR in \fIbindingTable\fR.If no such binding exists then NULL is returned and an errormessage is left in \fIinterp->result\fR..PP\fBTk_GetAllBindings\fR returns in \fIinterp->result\fR a listof all the event strings for which there are bindings in\fIbindingTable\fR associated with \fIobject\fR.If there are no bindings for \fIobject\fR then an emptystring is returned in \fIinterp->result\fR..PP\fBTk_DeleteAllBindings\fR deletes all of the bindings in\fIbindingTable\fR that are associated with \fIobject\fR..PP\fBTk_BindEvent\fR is called to process an event.It makes a copy of the event in an internal history list associatedwith the binding table, then it checks for bindings that matchthe event.\fBTk_BindEvent\fR processes each of the objects pointed toby \fIobjectPtr\fR in turn.For each object, it finds all the bindings that match the currentevent history, selects the most specific binding using the prioritymechanism described in the documentation for \fBbind\fR,and invokes the script for that binding.If there are no matching bindings for a particular object, thenthe object is skipped.\fBTk_BindEvent\fR continues through all of the objects, handlingexceptions such as errors, \fBbreak\fR, and \fBcontinue\fR asdescribed in the documentation for \fBbind\fR..SH KEYWORDSbinding, event, object, script
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -