--- rpl/modules/motif/motif.h 2017/07/04 12:32:03 1.1 +++ rpl/modules/motif/motif.h 2017/07/11 16:04:53 1.4 @@ -1,59 +1,45 @@ #include +enum types { WIDGET, APPCONTEXT }; + #ifdef string # undef string #endif -enum types { WIDGET, APPCONTEXT }; +#include "Xm/XmAll.h" -#include +#define string char * declareStructure - void target(s_etat_processus); - struct_objet target(s_objet); - Widget widget; -as(callbackArg); + XtAppContext context; + Widget widget; +as(sXtAppContext) -#ifdef __RPLC_MAIN - integer8 nombre_callbacks; - integer8 nombre_widgets; - logical setFalse(initialisation); - Widget target(widgets); - unsigned char target(presence_widget); - callbackArg target(callbacks); - unsigned char target(presence_callback); - - XtAppContext app; - Window mainWindow; - integer8 mainWidget = -1; +declareStructure + struct_processus *status; + struct_objet *callback; + Widget widget; +as(sXtCallback) - pthread_mutex_t callback_mutex = PTHREAD_MUTEX_INITIALIZER; +#ifdef __RPLC_MAIN +# define __MUTEX_INITIALIZER = PTHREAD_MUTEX_INITIALIZER +# define __RPLSO_EXTERN__ #else - extern integer8 nombre_callbacks; - extern integer8 nombre_widgets; - extern logical initialisation; - extern Widget target(widgets); - extern unsigned char target(presence_widget); - extern callbackArg target(callbacks); - extern unsigned char target(presence_callback); - - extern XtAppContext app; - extern Window mainWindow; - extern integer8 mainWidget; - - extern pthread_mutex_t callback_mutex; +# define __MUTEX_INITIALIZER +# define __RPLSO_EXTERN__ extern #endif +__RPLSO_EXTERN__ volatile logical exitMainLoop; +__RPLSO_EXTERN__ volatile logical initializationDone; +__RPLSO_EXTERN__ pthread_mutex_t callbackMutex __MUTEX_INITIALIZER; +__RPLSO_EXTERN__ struct_liste_chainee *lCallbacks; + #include "variables.h" -integer8 ajout_widget(Widget w); -integer8 ajout_callback(Widget widget, struct_objet *s_objet, - struct_rpl_arguments *rpl_arguments); +int usleep(useconds_t usec); -logical1 evaluation(struct_processus *s_etat_processus, struct_objet *s_objet, - unsigned char type_evaluation); +logical1 evaluation(struct_processus *, struct_objet *, unsigned char); -void destroyChildrenAndCallbacks(Widget w); void rplCallback(Widget x_objet, XtPointer argument, XtPointer call); // vim: ts=4