BindTable.3
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:7k
源码类别:

通讯编程

开发平台:

Visual C++

  1. '"
  2. '" Copyright (c) 1994 The Regents of the University of California.
  3. '" Copyright (c) 1994-1996 Sun Microsystems, Inc.
  4. '"
  5. '" See the file "license.terms" for information on usage and redistribution
  6. '" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  7. '" 
  8. '" RCS: @(#) $Id: BindTable.3,v 1.3 2002/08/05 04:30:38 dgp Exp $
  9. '" 
  10. .so man.macros
  11. .TH Tk_CreateBindingTable 3 4.0 Tk "Tk Library Procedures"
  12. .BS
  13. .SH NAME
  14. Tk_CreateBindingTable, Tk_DeleteBindingTable, Tk_CreateBinding, Tk_DeleteBinding, Tk_GetBinding, Tk_GetAllBindings, Tk_DeleteAllBindings, Tk_BindEvent - invoke scripts in response to X events
  15. .SH SYNOPSIS
  16. .nf
  17. fB#include <tk.h>fR
  18. .sp
  19. Tk_BindingTable
  20. fBTk_CreateBindingTable(fIinterpfB)fR
  21. .sp
  22. fBTk_DeleteBindingTable(fIbindingTablefB)fR
  23. .sp
  24. unsigned long
  25. fBTk_CreateBinding(fIinterp, bindingTable, object, eventString, script, appendfB)fR
  26. .sp
  27. int
  28. fBTk_DeleteBinding(fIinterp, bindingTable, object, eventStringfB)fR
  29. .sp
  30. CONST char *
  31. fBTk_GetBinding(fIinterp, bindingTable, object, eventStringfB)fR
  32. .sp
  33. fBTk_GetAllBindings(fIinterp, bindingTable, objectfB)fR
  34. .sp
  35. fBTk_DeleteAllBindings(fIbindingTable, objectfB)fR
  36. .sp
  37. fBTk_BindEvent(fIbindingTable, eventPtr, tkwin, numObjects, objectPtrfB)fR
  38. .SH ARGUMENTS
  39. .AS Tk_BindingTable bindingTable
  40. .AP Tcl_Interp *interp in
  41. Interpreter to use when invoking bindings in binding table.  Also
  42. used for returning results and errors from binding procedures.
  43. .AP Tk_BindingTable bindingTable in
  44. Token for binding table;  must have been returned by some previous
  45. call to fBTk_CreateBindingTablefR.
  46. .AP ClientData object in
  47. Identifies object with which binding is associated.
  48. .AP "CONST char" *eventString in
  49. String describing event sequence.
  50. .AP char *script in
  51. Tcl script to invoke when binding triggers.
  52. .AP int append in
  53. Non-zero means append fIscriptfR to existing script for binding,
  54. if any; zero means replace existing script with new one.
  55. .AP XEvent *eventPtr in
  56. X event to match against bindings in fIbindingTablefR.
  57. .AP Tk_Window tkwin in
  58. Identifier for any window on the display where the event occurred.
  59. Used to find display-related information such as key maps.
  60. .AP int numObjects in
  61. Number of object identifiers pointed to by fIobjectPtrfR.
  62. .AP ClientData *objectPtr in
  63. Points to an array of object identifiers:  bindings will be considered
  64. for each of these objects in order from first to last.
  65. .BE
  66. .SH DESCRIPTION
  67. .PP
  68. These procedures provide a general-purpose mechanism for creating
  69. and invoking bindings.
  70. Bindings are organized in terms of fIbinding tablesfR.
  71. A binding table consists of a collection of bindings plus a history
  72. of recent events.
  73. Within a binding table, bindings are associated with fIobjectsfR.
  74. The meaning of an object is defined by clients of the binding package.
  75. For example, Tk keeps uses one binding table to hold all of the bindings
  76. created by the fBbindfR command.
  77. For this table, objects are pointers to strings such as window names, class
  78. names, or other binding tags such as fBallfR.
  79. Tk also keeps a separate binding table for each canvas widget, which manages
  80. bindings created by the canvas's fBbindfR widget command;  within
  81. this table, an object is either a pointer to the internal structure for a
  82. canvas item or a Tk_Uid identifying a tag.
  83. .PP
  84. The procedure fBTk_CreateBindingTablefR creates a new binding
  85. table and associates fIinterpfR with it (when bindings in the
  86. table are invoked, the scripts will be evaluated in fIinterpfR).
  87. fBTk_CreateBindingTablefR returns a token for the table, which
  88. must be used in calls to other procedures such as fBTk_CreateBindingfR
  89. or fBTk_BindEventfR.
  90. .PP
  91. fBTk_DeleteBindingTablefR frees all of the state associated
  92. with a binding table.
  93. Once it returns the caller should not use the fIbindingTablefR
  94. token again.
  95. .PP
  96. fBTk_CreateBindingfR adds a new binding to an existing table.
  97. The fIobjectfR argument identifies the object with which the
  98. binding is to be associated, and it may be any one-word value.
  99. Typically it is a pointer to a string or data structure.
  100. The fIeventStringfR argument identifies the event or sequence
  101. of events for the binding;  see the documentation for the
  102. fBbindfR command for a description of its format.
  103. fIscriptfR is the Tcl script to be evaluated when the binding
  104. triggers.
  105. fIappendfR indicates what to do if there already
  106. exists a binding for fIobjectfR and fIeventStringfR:  if fIappendfR
  107. is zero then fIscriptfR replaces the old script;  if fIappendfR
  108. is non-zero then the new script is appended to the old one.
  109. fBTk_CreateBindingfR returns an X event mask for all the events
  110. associated with the bindings.
  111. This information may be useful to invoke fBXSelectInputfR to
  112. select relevant events, or to disallow the use of certain events
  113. in bindings.
  114. If an error occurred while creating the binding (e.g., fIeventStringfR
  115. refers to a non-existent event), then 0 is returned and an error
  116. message is left in fIinterp->resultfR.
  117. .PP
  118. fBTk_DeleteBindingfR removes from fIbindingTablefR the
  119. binding given by fIobjectfR and fIeventStringfR, if
  120. such a binding exists.
  121. fBTk_DeleteBindingfR always returns TCL_OK.
  122. In some cases it may reset fIinterp->resultfR to the default
  123. empty value.
  124. .PP
  125. fBTk_GetBindingfR returns a pointer to the script associated
  126. with fIeventStringfR and fIobjectfR in fIbindingTablefR.
  127. If no such binding exists then NULL is returned and an error
  128. message is left in fIinterp->resultfR.
  129. .PP
  130. fBTk_GetAllBindingsfR returns in fIinterp->resultfR a list
  131. of all the event strings for which there are bindings in
  132. fIbindingTablefR associated with fIobjectfR.
  133. If there are no bindings for fIobjectfR then an empty
  134. string is returned in fIinterp->resultfR.
  135. .PP
  136. fBTk_DeleteAllBindingsfR deletes all of the bindings in
  137. fIbindingTablefR that are associated with fIobjectfR.
  138. .PP
  139. fBTk_BindEventfR is called to process an event.
  140. It makes a copy of the event in an internal history list associated
  141. with the binding table, then it checks for bindings that match
  142. the event.
  143. fBTk_BindEventfR processes each of the objects pointed to
  144. by fIobjectPtrfR in turn.
  145. For each object, it finds all the bindings that match the current
  146. event history, selects the most specific binding using the priority
  147. mechanism described in the documentation for fBbindfR,
  148. and invokes the script for that binding.
  149. If there are no matching bindings for a particular object, then
  150. the object is skipped.
  151. fBTk_BindEventfR continues through all of the objects, handling
  152. exceptions such as errors, fBbreakfR, and fBcontinuefR as
  153. described in the documentation for fBbindfR.
  154. .SH KEYWORDS
  155. binding, event, object, script