qebind.h

Go to the documentation of this file.
00001 /* 
00002  * qebind.h --
00003  *
00004  *  This module is the header for quasi-events.
00005  *
00006  * Copyright (c) 2002-2006 Tim Baker
00007  *
00008  * RCS: @(#) $Id: qebind.h,v 1.1 2007-02-06 13:18:14 barre Exp $
00009  */
00010 
00011 #ifndef INCLUDED_QEBIND_H
00012 #define INCLUDED_QEBIND_H
00013 
00014 typedef struct QE_BindingTable_ *QE_BindingTable;
00015 
00016 /* Pass to QE_BindEvent */
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 /* INCLUDED_QEBIND_H */
00076