=================================================================== RCS file: /cvs/ace/ace/lib/table.c,v retrieving revision 1.5 retrieving revision 1.6 diff -p -u -r1.5 -r1.6 --- ace/lib/table.c 2001/05/06 06:14:34 1.5 +++ /cvs/ace/ace/lib/table.c 2001/09/21 18:38:58 1.6 @@ -32,6 +32,7 @@ #include "cards.h" #include "imagelib.h" #include "xwin.h" +#include "funcs.h" #define TRACE_EVENTS 0 #define TRACE_PICTURES 0 @@ -62,8 +63,20 @@ static OptionDesc ace_options[] = { { 0, 0, 0 } }; +static FunctionMapping flist[] = { + { "click", &click_cb }, + { "drag", &drag_cb }, + { "redraw", &redraw_cb }, + { "init", &init_cb }, + { "drop", &drop_cb }, + { "key", &key_cb }, + { "resize", &resize_cb }, + { "double_click", &double_click_cb }, + { 0, 0 } +}; + void -init_ace(int argc, char **argv) +init_ace(int argc, char **argv, FunctionMapping *funcs) { int i = 0, o, a, errors=0; if (app_options) @@ -73,6 +86,11 @@ init_ace(int argc, char **argv) options[i++] = ace_options; options[i++] = 0; + for (i=0; funcs[i].name; i++) + for (a=0; flist[a].name; a++) + if (strcmp(funcs[i].name, flist[a].name) == 0) + *(void **)flist[a].function = funcs[i].function; + for (a=1; a