00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef INCLUDED_QEBIND_H
00012 #define INCLUDED_QEBIND_H
00013
00014 typedef struct QE_BindingTable_ *QE_BindingTable;
00015
00016
00017 typedef struct QE_Event {
00018 int type;
00019 int detail;
00020 ClientData clientData;
00021 } QE_Event;
00022
00023 typedef struct QE_ExpandArgs {
00024 QE_BindingTable bindingTable;
00025 char which;
00026 ClientData object;
00027 Tcl_DString *result;
00028 int event;
00029 int detail;
00030 ClientData clientData;
00031 } QE_ExpandArgs;
00032
00033 typedef void (*QE_ExpandProc)(QE_ExpandArgs *args);
00034 extern QE_BindingTable bindingTable;
00035 extern int debug_bindings;
00036
00037 extern int QE_BindInit(Tcl_Interp *interp);
00038 extern QE_BindingTable QE_CreateBindingTable(Tcl_Interp *interp);
00039 extern void QE_DeleteBindingTable(QE_BindingTable bindingTable);
00040 extern int QE_InstallEvent(QE_BindingTable bindingTable, char *name, QE_ExpandProc expand);
00041 extern int QE_InstallDetail(QE_BindingTable bindingTable, char *name, int eventType, QE_ExpandProc expand);
00042 extern int QE_CreateBinding(QE_BindingTable bindingTable,
00043 ClientData object, char *eventString, char *command, int append);
00044 extern int QE_DeleteBinding(QE_BindingTable bindingTable,
00045 ClientData object, char *eventString);
00046 extern int QE_GetBinding(QE_BindingTable bindingTable,
00047 ClientData object, char *eventString);
00048 extern int QE_GetAllBindings(QE_BindingTable bindingTable,
00049 ClientData object);
00050 extern int QE_GetEventNames(QE_BindingTable bindingTable);
00051 extern int QE_GetDetailNames(QE_BindingTable bindingTable, char *eventName);
00052 extern int QE_BindEvent(QE_BindingTable bindingTable, QE_Event *eventPtr);
00053 extern void QE_ExpandDouble(double number, Tcl_DString *result);
00054 extern void QE_ExpandNumber(long number, Tcl_DString *result);
00055 extern void QE_ExpandString(char *string, Tcl_DString *result);
00056 extern void QE_ExpandEvent(QE_BindingTable bindingTable, int eventType, Tcl_DString *result);
00057 extern void QE_ExpandDetail(QE_BindingTable bindingTable, int event, int detail, Tcl_DString *result);
00058 extern void QE_ExpandPattern(QE_BindingTable bindingTable, int eventType, int detail, Tcl_DString *result);
00059 extern void QE_ExpandUnknown(char which, Tcl_DString *result);
00060 extern int QE_BindCmd(QE_BindingTable bindingTable, int objOffset, int objc,
00061 Tcl_Obj *CONST objv[]);
00062 extern int QE_ConfigureCmd(QE_BindingTable bindingTable, int objOffset, int objc,
00063 Tcl_Obj *CONST objv[]);
00064 extern int QE_GenerateCmd(QE_BindingTable bindingTable, int objOffset, int objc,
00065 Tcl_Obj *CONST objv[]);
00066 extern int QE_InstallCmd(QE_BindingTable bindingTable, int objOffset, int objc,
00067 Tcl_Obj *CONST objv[]);
00068 extern int QE_UnbindCmd(QE_BindingTable bindingTable, int objOffset, int objc,
00069 Tcl_Obj *CONST objv[]);
00070 extern int QE_UninstallCmd(QE_BindingTable bindingTable, int objOffset, int objc,
00071 Tcl_Obj *CONST objv[]);
00072 extern int QE_LinkageCmd(QE_BindingTable bindingTable, int objOffset, int objc,
00073 Tcl_Obj *CONST objv[]);
00074
00075 #endif
00076