Tk_CreateBindingTable, Tk_DeleteBindingTable, Tk_CreateBinding, Tk_DeleteBinding, Tk_GetBinding, Tk_GetAllBindings, Tk_DeleteAllBindings, Tk_BindEvent - invoke scripts in response to X events
B<#include E<lt>tk.hE<gt>> Tk_BindingTable B<Tk_CreateBindingTable(>I<interp>B<)> B<Tk_DeleteBindingTable(>I<bindingTable>B<)> unsigned long B<Tk_CreateBinding(>I<interp, bindingTable, object, eventString, script, append>B<)> int B<Tk_DeleteBinding(>I<interp, bindingTable, object, eventString>B<)> char * B<Tk_GetBinding(>I<interp, bindingTable, object, eventString>B<)> B<Tk_GetAllBindings(>I<interp, bindingTable, object>B<)> B<Tk_DeleteAllBindings(>I<bindingTable, object>B<)> B<Tk_BindEvent(>I<bindingTable, eventPtr, tkwin, numObjects, objectPtr>B<)>
Interpreter to use when invoking bindings in binding table. Also used for returning results and errors from binding procedures.
Token for binding table; must have been returned by some previous call to B<Tk_CreateBindingTable>.
Identifies object with which binding is associated.
String describing event sequence.
Tcl script to invoke when binding triggers.
Non-zero means append I<script> to existing script for binding, if any; zero means replace existing script with new one.
X event to match against bindings in I<bindingTable>.
Identifier for any window on the display where the event occurred. Used to find display-related information such as key maps.
Number of object identifiers pointed to by I<objectPtr>.
Points to an array of object identifiers: bindings will be considered for each of these objects in order from first to last.
These procedures provide a general-purpose mechanism for creating and invoking bindings. Bindings are organized in terms of I<binding tables>. A binding table consists of a collection of bindings plus a history of recent events. Within a binding table, bindings are associated with I<objects>. 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 bindings created by the B<bind> command. For this table, objects are pointers to strings such as window names, class names, or other binding tags such as B<all>. Tk also keeps a separate binding table for each canvas widget, which manages bindings created by the canvas's B<bind> widget command; within this table, an object is either a pointer to the internal structure for a canvas item or a Tk_Uid identifying a tag. The procedure B<Tk_CreateBindingTable> creates a new binding table and associates I<interp> with it (when bindings in the table are invoked, the scripts will be evaluated in I<interp>). B<Tk_CreateBindingTable> returns a token for the table, which must be used in calls to other procedures such as B<Tk_CreateBinding> or B<Tk_BindEvent>. B<Tk_DeleteBindingTable> frees all of the state associated with a binding table. Once it returns the caller should not use the I<bindingTable> token again. B<Tk_CreateBinding> adds a new binding to an existing table. The I<object> argument identifies the object with which the binding is to be associated, and it may be any one-word value. Typically it is a pointer to a string or data structure. The I<eventString> argument identifies the event or sequence of events for the binding; See the B<bind> manual entry for a description of its format. I<script> is the Tcl script to be evaluated when the binding triggers. I<append> indicates what to do if there already exists a binding for I<object> and I<eventString>: if I<append> is zero then I<script> replaces the old script; if I<append> is non-zero then the new script is appended to the old one. B<Tk_CreateBinding> returns an X event mask for all the events associated with the bindings. This information may be useful to invoke B<XSelectInput> to select relevant events, or to disallow the use of certain events in bindings. If an error occurred while creating the binding (e.g., I<eventString> refers to a non-existent event), then 0 is returned and an error message is left in I<interp-E<gt>result>. B<Tk_DeleteBinding> removes from I<bindingTable> the binding given by I<object> and I<eventString>, if such a binding exists. B<Tk_DeleteBinding> always returns TCL_OK. In some cases it may reset I<interp-E<gt>result> to the default empty value. B<Tk_GetBinding> returns a pointer to the script associated with I<eventString> and I<object> in I<bindingTable>. If no such binding exists then NULL is returned and an error message is left in I<interp-E<gt>result>. B<Tk_GetAllBindings> returns in I<interp-E<gt>result> a list of all the event strings for which there are bindings in I<bindingTable> associated with I<object>. If there are no bindings for I<object> then an empty string is returned in I<interp-E<gt>result>. B<Tk_DeleteAllBindings> deletes all of the bindings in I<bindingTable> that are associated with I<object>. B<Tk_BindEvent> is called to process an event. It makes a copy of the event in an internal history list associated with the binding table, then it checks for bindings that match the event. B<Tk_BindEvent> processes each of the objects pointed to by I<objectPtr> in turn. For each object, it finds all the bindings that match the current event history, selects the most specific binding using the priority mechanism described in the documentation for B<bind>, and invokes the script for that binding. If there are no matching bindings for a particular object, then the object is skipped. B<Tk_BindEvent> continues through all of the objects, handling exceptions such as errors, B<break>, and B<continue> as described in the documentation for B<bind>.
binding, event, object, script
To install Tk, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Tk
CPAN shell
perl -MCPAN -e shell install Tk
For more information on module installation, please visit the detailed CPAN module installation guide.