79 lines
2.2 KiB
C
79 lines
2.2 KiB
C
/* Copyright 1989 GROUPE BULL -- See license conditions in file COPYRIGHT
|
|
* Copyright 1989 Massachusetts Institute of Technology
|
|
*/
|
|
/************************\
|
|
* *
|
|
* WOOL_OBJECT Active *
|
|
* DEFINITIONS *
|
|
* *
|
|
\************************/
|
|
|
|
#ifndef INCLUDE_WL_ACTIVE_H
|
|
#define INCLUDE_WL_ACTIVE_H
|
|
|
|
/* type */
|
|
|
|
typedef struct _WOOL_Active {
|
|
WOOL_HEADER;
|
|
WOOL_METHOD get; /* function called when got */
|
|
char p_name[1]; /* same as for atoms */
|
|
} *WOOL_Active;
|
|
|
|
/* we need to store the set object without perturbing the name homogeneity */
|
|
|
|
typedef struct _WOOL_Active_internal {
|
|
WOOL_METHOD set; /* function called when set */
|
|
WOOL_HEADER;
|
|
WOOL_METHOD get; /* function called when got */
|
|
char p_name[1]; /* same as for atoms */
|
|
} *WOOL_Active_internal;
|
|
|
|
/* macro to access the set field */
|
|
|
|
#define ActiveSet(a) \
|
|
(((WOOL_Active_internal) (((char *) a) - \
|
|
(sizeof(struct _WOOL_Active_internal) - \
|
|
sizeof(struct _WOOL_Active)))) -> set)
|
|
|
|
/* exported functions */
|
|
|
|
EXT WOOL_Active wool_active_make();
|
|
EXT WOOL_Active wool_func_active_make();
|
|
EXT WOOL_OBJECT WLActive_eval();
|
|
EXT WOOL_OBJECT WLActive_execute();
|
|
EXT WOOL_OBJECT WLActive_set();
|
|
EXT WOOL_OBJECT WLActive_setq();
|
|
EXT WOOL_OBJECT WLActive_get_C_value();
|
|
|
|
/* methods */
|
|
|
|
EXT WOOL_METHOD WLActive[]
|
|
#ifdef DO_INIT
|
|
= {
|
|
(WOOL_METHOD) 0, /* METHODS_ARRAY */
|
|
WLActive_eval, /* WOOL_eval 1 */
|
|
WLAtom_print, /* WOOL_print 2 */
|
|
WLAtom_free, /* same error as to free an atom */
|
|
WLActive_execute, /* WOOL_execute 4 */
|
|
WLActive_set, /* WOOL_set 5 */
|
|
WLActive_get_C_value, /* WOOL_get_C_value 6 */
|
|
wool_undefined_method_1, /* WOOL_open 7 */
|
|
wool_undefined_method_1, /* WOOL_close 8 */
|
|
wool_undefined_method_2, /* WOOL_process_event 9 */
|
|
wool_undefined_method_1, /* WOOL_copy 10 */
|
|
wool_undefined_method_2, /* WOOL_get_dimensions 11 */
|
|
wool_undefined_method_2, /* WOOL_draw 12 */
|
|
WLAtom_equal, /* WOOL_equal 13 */
|
|
wool_undefined_method_2,
|
|
WLActive_setq, /* WOOL_setq 15 */
|
|
wool_undefined_method_1,
|
|
WLActive_eval,
|
|
wool_undefined_method_1,
|
|
wool_undefined_method_1,
|
|
wool_undefined_method_1
|
|
}
|
|
#endif /* DO_INIT */
|
|
;
|
|
|
|
#endif /* INCLUDE_WL_ACTIVE_H */
|