Generic_Window_Manager/wl_pointer.h

83 lines
2.5 KiB
C

/* Copyright 1989 GROUPE BULL -- See license conditions in file COPYRIGHT
* Copyright 1989 Massachusetts Institute of Technology
*/
/************************\
* *
* WOOL_OBJECT Pointer *
* DEFINITIONS *
* *
\************************/
#ifndef INCLUDE_WL_POINTER_H
#define INCLUDE_WL_POINTER_H
/* type */
typedef struct _WOOL_Pointer {
WOOL_HEADER;
long *ptr; /* pointer to C object */
char p_name[1]; /* same as for atoms */
} *WOOL_Pointer;
typedef struct _WOOL_Pointer_internal {
char **base; /* if non-null, ptr is an offset to it */
WOOL_HEADER;
long ptr; /* offset to pointer to C object */
char p_name[1]; /* same as for atoms */
} *WOOL_Pointer_internal;
/* macro to access the internal field */
#define WLPointerBase(wl_ptr) \
(((WOOL_Pointer_internal) (((char *) (wl_ptr)) - \
(sizeof(struct _WOOL_Pointer_internal) - \
sizeof(struct _WOOL_Pointer)))) -> base)
#define WL_Pointer_internal(wl_ptr) \
((WOOL_Pointer_internal) (((char *) (wl_ptr)) - \
(sizeof(struct _WOOL_Pointer_internal) - \
sizeof(struct _WOOL_Pointer))))
/* exported functions */
EXT WOOL_Pointer wool_pointer_make();
EXT WOOL_Pointer wool_func_pointer_make();
EXT WOOL_Pointer WLPointer_make();
EXT WOOL_OBJECT WLPointer_eval();
EXT WOOL_OBJECT WLPointer_execute();
EXT WOOL_OBJECT WLPointer_set();
EXT WOOL_OBJECT WLPointer_setq();
EXT long WLPointer_get_C_value();
/* methods */
EXT WOOL_METHOD WLPointer[]
#ifdef DO_INIT
= {
(WOOL_METHOD) 0, /* METHODS_ARRAY */
WLPointer_eval, /* WOOL_eval 1 */
WLAtom_print, /* WOOL_print 2 */
WLAtom_free, /* WOOL_free 3 */
WLPointer_execute, /* WOOL_execute 4 */
WLPointer_set, /* WOOL_set 5 */
(WOOL_METHOD) WLPointer_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,
WLPointer_setq, /* WOOL_setq 15 */
wool_undefined_method_1,
WLPointer_eval,
wool_undefined_method_1,
wool_undefined_method_1,
wool_undefined_method_1
}
#endif /* DO_INIT */
;
#endif /* INCLUDE_WL_POINTER_H */