/* xt.h * * $Id$ * * Copyright 1990, 1991, 1992, 1993, 1994, 1995, Oliver Laumann, Berlin * Copyright 2002, 2003 Sam Hocevar , Paris * * This software was derived from Elk 1.2, which was Copyright 1987, 1988, * 1989, Nixdorf Computer AG and TELES GmbH, Berlin (Elk 1.2 has been written * by Oliver Laumann for TELES Telematic Services, Berlin, in a joint project * between TELES and Nixdorf Microprocessor Engineering, Berlin). * * Oliver Laumann, TELES GmbH, Nixdorf Computer AG and Sam Hocevar, as co- * owners or individual owners of copyright in this software, grant to any * person or company a worldwide, royalty free, license to * * i) copy this software, * ii) prepare derivative works based on this software, * iii) distribute copies of this software or derivative works, * iv) perform this software, or * v) display this software, * * provided that this notice is not removed and that neither Oliver Laumann * nor Teles nor Nixdorf are deemed to have made any representations as to * the suitability of this software for any purpose nor are held responsible * for any defects of this software. * * THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. */ #include "xlib.h" #define XTSTRINGDEFINES #define Object FOO # include # include # include # include #undef Object #include #if XtSpecificationRelease < 4 #error "Xt Release 3 or earlier no longer supported" #endif #if XtSpecificationRelease >= 5 # define XT_RELEASE_5_OR_LATER #endif #if XtSpecificationRelease >= 6 # define XT_RELEASE_6_OR_LATER #endif typedef XtArgVal (*PFS2X) (Object); typedef Object (*PFX2S) (XtArgVal); extern int T_Context; extern int T_Class; extern int T_Widget; extern int T_Identifier; #define CONTEXT(x) ((struct S_Context *)POINTER(x)) #define CLASS(x) ((struct S_Class *)POINTER(x)) #define WIDGET(x) ((struct S_Widget *)POINTER(x)) #define IDENTIFIER(x) ((struct S_Identifier *)POINTER(x)) struct S_Context { Object tag; XtAppContext context; char free; }; struct S_Class { Object tag; WidgetClass wclass; char *name; }; struct S_Widget { Object tag; Widget widget; char free; }; struct S_Identifier { Object tag; char type; XtPointer val; int num; char free; }; extern WidgetClass widgetClass; /* The `core' class */ extern WidgetClass constraintWidgetClass; extern WidgetClass compositeWidgetClass; C_LINKAGE_BEGIN extern void Check_Callback_List (Object); extern void Check_Context (Object); extern void Check_Widget (Object); extern void Check_Widget_Class (Object, WidgetClass); extern void Convert_Args (int, Object*, ArgList, Widget, WidgetClass); extern void Define_Callback (char*, char*, int); extern void Define_Class (char *, WidgetClass, XtResourceList, int); extern void Define_Converter_To_C (char*, PFS2X); extern void Define_Converter_To_Scheme (char*, PFX2S); extern void Fiddle_Destroy_Callback (Widget); extern void Fill_Callbacks (Object, XtCallbackList, int, PFX2S); extern void Free_Actions (XtAppContext); extern void Get_All_Resources (int, Widget, WidgetClass, XtResource**, int*, int*); extern void Make_Resource_Name (char*); extern int Match_Xt_Obj (Object, va_list); extern Object Get_Callbackfun (XtPointer); extern Object Get_Function (int); extern Object Get_Resources (WidgetClass, void (*)(WidgetClass, XtResourceList*, Cardinal*), int); extern Object Get_Values (Widget, int, Object*); extern Object Make_Class (WidgetClass, char*); extern Object Make_Context (XtAppContext); extern Object Make_Context_Foreign (XtAppContext); extern Object Make_Id (int, XtPointer, int); extern Object Make_Widget (Widget); extern Object Make_Widget_Foreign (Widget); extern Object Make_Widget_Class (WidgetClass); extern PFX2S Find_Callback_Converter (WidgetClass, char*, Object); extern PFX2S Find_Converter_To_Scheme (char*); extern PFS2X Find_Converter_To_C (char*); extern int Register_Function (Object); extern void Deregister_Function (int); extern XtAccelerators Get_Accelerators (Object); extern XtTranslations Get_Translations (Object); extern XtPointer Use_Id (Object, int); extern void Xt_Warning (char*); extern char *Class_Name (WidgetClass); extern void Action_Hook (Widget, XtPointer, char*, XEvent*, char**, int*); extern void Destroy_Callback_Proc (Widget, XtPointer, XtPointer); extern void Get_Sub_Resource_List (WidgetClass, XtResourceList*, Cardinal*); extern Object Xt_Class_Name (WidgetClass); extern Object Get_Selection_CB (void *); /* xm/support.d */ extern Object Get_Any_CB (void *); /* xm/support.d */ extern void elk_init_xt_accelerator (); extern void elk_init_xt_action (); extern void elk_init_xt_callback (); extern void elk_init_xt_class (); extern void elk_init_xt_context (); extern void elk_init_xt_function (); extern void elk_init_xt_identifier (); extern void elk_init_xt_popup (); extern void elk_init_xt_translation (); extern void elk_init_xt_widget (); extern void elk_init_xt_error (); extern void elk_init_xt_init (); C_LINKAGE_END #define Encode_Arglist(ac,av,to,widget,class) {\ Alloca (to, Arg*, ((ac)+1)/2 * sizeof (Arg));\ Convert_Args (ac, av, to, widget, class);\ } #define streq(a,b) (strcmp ((a), (b)) == 0)