diff options
Diffstat (limited to 'xpa/xtloop.c')
-rw-r--r-- | xpa/xtloop.c | 261 |
1 files changed, 0 insertions, 261 deletions
diff --git a/xpa/xtloop.c b/xpa/xtloop.c deleted file mode 100644 index f712a9e..0000000 --- a/xpa/xtloop.c +++ /dev/null @@ -1,261 +0,0 @@ -/* - * Copyright (c) 1999-2003 Smithsonian Astrophysical Observatory - */ - -#include <xpap.h> - -#if HAVE_XT - -#include <X11/Intrinsic.h> - -/* - *---------------------------------------------------------------------------- - * - * - * Private Routines and Data - * - * - *---------------------------------------------------------------------------- - */ - -/* - * - * record struct for maintining Xt info in Xt select loop - * - */ -typedef struct xpaxtrec{ - int fd; - void *client_data; - XtInputId id; -} *XPAXt, XPAXtRec; - -/* its such a pain to maintain this, so make it global! */ -static XtAppContext xpa_app=NULL; - -/* - *---------------------------------------------------------------------------- - * - * Routine: XPAXtHandler - * - * Purpose: handle one request for an xpaset or xpaget - * - * Return: none - * - *---------------------------------------------------------------------------- - */ -#ifdef ANSI_FUNC -static void -XPAXtHandler (XtPointer client_data, int *fd, XtInputId *id) -#else -static void XPAXtHandler(client_data, fd, id) - XtPointer client_data; - int *fd; - XtInputId *id; -#endif -{ - XPAXt xptr = (XPAXt)client_data; - if( (xptr == NULL) || (xptr->client_data == NULL) ) - return; - XPAHandler((XPA)xptr->client_data, xptr->fd); -} - -/* - *---------------------------------------------------------------------------- - * - * Routine: XPAXtEnableOneInput - * - * Purpose: Enable 1 XPA entry from the Xt event loop - * - * Results: none - * - *---------------------------------------------------------------------------- - */ -#ifdef ANSI_FUNC -static void -XPAXtEnableOneInput (void *client_data) -#else -static void XPAXtEnableOneInput(client_data) - void *client_data; -#endif -{ - XPAXt xptr = (XPAXt)client_data; - if( xptr == NULL ) - return; - if( xptr->id != (XtInputId)NULL ) - return; - if( xpa_app == NULL ){ - xptr->id = XtAddInput(xptr->fd, - (XtPointer)XtInputReadMask, - (XtInputCallbackProc)XPAXtHandler, - (XtPointer)xptr); - } - else{ - xptr->id = XtAppAddInput(xpa_app, xptr->fd, - (XtPointer)XtInputReadMask, - (XtInputCallbackProc)XPAXtHandler, - (XtPointer)xptr); - } -} - -/* - *---------------------------------------------------------------------------- - * - * Routine: XPAXtDisableOneInput - * - * Purpose: Disable 1 XPA entry from the Xt event loop - * - * Results: none - * - *---------------------------------------------------------------------------- - */ -#ifdef ANSI_FUNC -static void -XPAXtDisableOneInput (void *client_data) -#else -static void XPAXtDisableOneInput(client_data) - void *client_data; -#endif -{ - XPAXt xptr = (XPAXt)client_data; - if( xptr == NULL ) - return; - if( xptr->id == (XtInputId)NULL ) - return; - XtRemoveInput(xptr->id); - xptr->id = (XtInputId)NULL; -} - -/* - *---------------------------------------------------------------------------- - * - * Routine: XPAXtAddOneInput - * - * Purpose: Add 1 XPA entry to the Xt event loop - * - * Results: none - * - *---------------------------------------------------------------------------- - */ -#ifdef ANSI_FUNC -static void * -XPAXtAddOneInput (void *client_data, int fd) -#else -static void *XPAXtAddOneInput(client_data, fd) - void *client_data; - int fd; -#endif -{ - XPAXt xptr; - if( fd < 0 ) - return(NULL); - xptr = (XPAXt)xcalloc(1, sizeof(XPAXtRec)); - xptr->fd = fd; - xptr->client_data = client_data; - XPAXtEnableOneInput(xptr); - return(xptr); -} - -/* - *---------------------------------------------------------------------------- - * - * Routine: XPAXtDelOneInput - * - * Purpose: Delete 1 XPA entry from the Xt event loop (called by XPAFree) - * - * Results: none - * - *---------------------------------------------------------------------------- - */ -#ifdef ANSI_FUNC -static void -XPAXtDelOneInput (void *client_data) -#else -static void XPAXtDelOneInput(client_data) - void *client_data; -#endif -{ - XPAXt xptr = (XPAXt)client_data; - if( xptr == NULL) - return; - XPAXtDisableOneInput(xptr); - xfree(xptr); -} - -/* - *---------------------------------------------------------------------------- - * - * - * Public Routines and Data - * - * - *---------------------------------------------------------------------------- - */ - -/* - *---------------------------------------------------------------------------- - * - * Routine: XPAXtAddInput - * - * Purpose: Add XPA entries to the Xt event loop - * - * Results: number of xpa entried added - * - *---------------------------------------------------------------------------- - */ -#ifdef ANSI_FUNC -int -XPAXtAddInput (void *app, XPA xpa) -#else -int XPAXtAddInput(app, xpa) - void *app; - XPA xpa; -#endif -{ - XPA cur; - int got=0; - - /* save the app context */ - if( xpa_app == NULL ){ - xpa_app = (XtAppContext)app; - } - - /* if a specific xpa was specified, just add it */ - if( xpa != NULL ){ - /* remove old one */ - if( xpa->seldel && xpa->selptr ){ - (xpa->seldel)(xpa->selptr); - } - /* add new one */ - xpa->seldel = XPAXtDelOneInput; - xpa->seladd = XPAXtAddOneInput; - xpa->selon = XPAXtEnableOneInput; - xpa->seloff = XPAXtDisableOneInput; - xpa->selptr = XPAXtAddOneInput((void *)xpa, xpa->fd); - got = 1; - } - /* otherwise set up all xpa's */ - else{ - for(cur=(XPA)XPAListHead(); cur!=NULL; cur=cur->next){ - /* remove old one */ - if( cur->seldel && cur->selptr ){ - (cur->seldel)(cur->selptr); - } - /* add new one */ - cur->seldel = XPAXtDelOneInput; - cur->seladd = XPAXtAddOneInput; - cur->selon = XPAXtEnableOneInput; - cur->seloff = XPAXtDisableOneInput; - cur->selptr = XPAXtAddOneInput((void *)cur, cur->fd); - got++; - } - } - return(got); -} - -int xpa_xt = 1; - -#else - -int xpa_xt = 0; - -#endif |