|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Motif
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Copyright (c) 1987-2012, The Open Group. All rights reserved.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* These libraries and programs are free software; you can
|
|
Packit |
b099d7 |
* redistribute them and/or modify them under the terms of the GNU
|
|
Packit |
b099d7 |
* Lesser General Public License as published by the Free Software
|
|
Packit |
b099d7 |
* Foundation; either version 2 of the License, or (at your option)
|
|
Packit |
b099d7 |
* any later version.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* These libraries and programs are distributed in the hope that
|
|
Packit |
b099d7 |
* they will be useful, but WITHOUT ANY WARRANTY; without even the
|
|
Packit |
b099d7 |
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
Packit |
b099d7 |
* PURPOSE. See the GNU Lesser General Public License for more
|
|
Packit |
b099d7 |
* details.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit |
b099d7 |
* License along with these librararies and programs; if not, write
|
|
Packit |
b099d7 |
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
|
|
Packit |
b099d7 |
* Floor, Boston, MA 02110-1301 USA
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifndef _LIST_H
|
|
Packit |
b099d7 |
#define _LIST_H
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#if defined(VMS) || defined (__VMS)
|
|
Packit |
b099d7 |
#include <X11/apienvset.h>
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include <Xm/Xm.h>
|
|
Packit |
b099d7 |
#include <Xm/Ext.h>
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifdef __cplusplus
|
|
Packit |
b099d7 |
extern "C" {
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Stack Data structure.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct _XmStackRec {
|
|
Packit |
b099d7 |
int top, alloc; /* The top node of the stack, and the number
|
|
Packit |
b099d7 |
of allocated nodes. */
|
|
Packit |
b099d7 |
XtPointer * elems; /* The stack elements. */
|
|
Packit |
b099d7 |
} XmStackRec, *XmStack;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Global function defs.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmStack _XmStackInit(void);
|
|
Packit |
b099d7 |
void _XmStackFree(XmStack), _XmStackPush(XmStack, XtPointer);
|
|
Packit |
b099d7 |
XtPointer _XmStackPop(XmStack);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Queue Data structure.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct __XmQElem {
|
|
Packit |
b099d7 |
struct __XmQElem *next, *prev; /* doubly linked list. */
|
|
Packit |
b099d7 |
XtPointer data; /* The data associated with this element. */
|
|
Packit |
b099d7 |
Boolean alloced;
|
|
Packit |
b099d7 |
} _XmQElem;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct _XmQueueRec {
|
|
Packit |
b099d7 |
_XmQElem *first, *last; /* the first and last elements. */
|
|
Packit |
b099d7 |
_XmQElem *free_elems; /* Unused elements. */
|
|
Packit |
b099d7 |
} XmQueueRec, *XmQueue;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Global function defs.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmQueue _XmQueueInit(void);
|
|
Packit |
b099d7 |
void _XmQueueFree(XmQueue), _XmQueuePush(XmQueue, XtPointer);
|
|
Packit |
b099d7 |
XtPointer _XmQueuePop(XmQueue);
|
|
Packit |
b099d7 |
int _XmQueueCount(XmQueue);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Internal functions used only by other parts of the utils library.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void _Xm_AddQueue(XmQueue, _XmQElem *, _XmQElem *);
|
|
Packit |
b099d7 |
_XmQElem * _Xm_RemQueue(_XmQElem **);
|
|
Packit |
b099d7 |
_XmQElem * _Xm_GetNewElement(XmQueue);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* New types.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef _XmQElem XmListElem;
|
|
Packit |
b099d7 |
typedef XmQueueRec *XmList;
|
|
Packit |
b099d7 |
typedef Boolean (*XmListFunc)(XmListElem *, XtPointer);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Macros.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define XmListElemNext(elem) (elem)->next
|
|
Packit |
b099d7 |
#define XmListElemPrev(elem) (elem)->prev
|
|
Packit |
b099d7 |
#define XmListElemData(elem) (elem)->data
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define XmListFirst(list) (list)->first
|
|
Packit |
b099d7 |
#define XmListLast(list) (list)->last
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Global function defs.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void _XmListFree(XmList), _XmListRemove(XmList, XmListElem *);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmListElem * _XmListAddAfter(XmList, XmListElem *, XtPointer);
|
|
Packit |
b099d7 |
XmListElem * _XmListAddBefore(XmList, XmListElem *, XtPointer);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmList _XmListInit(void);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
int _XmListCount(XmList);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmListElem *_XmListExec(XmList, XmListElem *, XmListElem *, XmListFunc, XtPointer);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifdef __cplusplus
|
|
Packit |
b099d7 |
} /* Closes scope of 'extern "C"' declaration */
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#if defined(VMS) || defined (__VMS)
|
|
Packit |
b099d7 |
#include <X11/apienvrst.h>
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* #ifdef XmRENAME_WIDGETS */
|
|
Packit |
b099d7 |
/* #define USE_OLD_NAMES */
|
|
Packit |
b099d7 |
/* #endif */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifdef USE_OLD_NAMES
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define ListAddAfter _XmListAddAfter
|
|
Packit |
b099d7 |
#define ListAddBefore _XmListAddBefore
|
|
Packit |
b099d7 |
#define ListCount _XmListCount
|
|
Packit |
b099d7 |
#define ListExec _XmListExec
|
|
Packit |
b099d7 |
#define ListFree _XmListFree
|
|
Packit |
b099d7 |
#define ListInit _XmListInit
|
|
Packit |
b099d7 |
#define ListRemove _XmListRemove
|
|
Packit |
b099d7 |
#define QueueCount _XmQueueCount
|
|
Packit |
b099d7 |
#define QueueFree _XmQueueFree
|
|
Packit |
b099d7 |
#define QueueInit _XmQueueInit
|
|
Packit |
b099d7 |
#define QueuePop _XmQueuePop
|
|
Packit |
b099d7 |
#define QueuePush _XmQueuePush
|
|
Packit |
b099d7 |
#define StackFree _XmStackFree
|
|
Packit |
b099d7 |
#define StackInit _XmStackInit
|
|
Packit |
b099d7 |
#define StackPop _XmStackPop
|
|
Packit |
b099d7 |
#define StackPush _XmStackPush
|
|
Packit |
b099d7 |
#define _AddQueue _Xm_AddQueue
|
|
Packit |
b099d7 |
#define _GetNewElement _Xm_GetNewElement
|
|
Packit |
b099d7 |
#define _RemQueue _Xm_RemQueue
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define Stack XmStack
|
|
Packit |
b099d7 |
#define StackRec XmStackRec
|
|
Packit |
b099d7 |
#define QElem _XmQElem
|
|
Packit |
b099d7 |
#define QueueRec XmQueueRec
|
|
Packit |
b099d7 |
#define Queue XmQueue
|
|
Packit |
b099d7 |
#define ListElem XmListElem
|
|
Packit |
b099d7 |
#define List XmList
|
|
Packit |
b099d7 |
#define ListFunc XmListFunc
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define ListElemNext XmListElemNext
|
|
Packit |
b099d7 |
#define ListElemPrev XmListElemPrev
|
|
Packit |
b099d7 |
#define ListElemData XmListElemData
|
|
Packit |
b099d7 |
#define ListFirst XmListFirst
|
|
Packit |
b099d7 |
#define ListLast XmListLast
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#endif /* USE_OLD_NAMES */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#endif /* _LIST_H */
|