Blame include/X11/Xmu/Xmu.h

Packit cd2a55
/*
Packit cd2a55
Packit cd2a55
Copyright 1988, 1998  The Open Group
Packit cd2a55
Packit cd2a55
Permission to use, copy, modify, distribute, and sell this software and its
Packit cd2a55
documentation for any purpose is hereby granted without fee, provided that
Packit cd2a55
the above copyright notice appear in all copies and that both that
Packit cd2a55
copyright notice and this permission notice appear in supporting
Packit cd2a55
documentation.
Packit cd2a55
Packit cd2a55
The above copyright notice and this permission notice shall be included in
Packit cd2a55
all copies or substantial portions of the Software.
Packit cd2a55
Packit cd2a55
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
Packit cd2a55
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
Packit cd2a55
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
Packit cd2a55
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
Packit cd2a55
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
Packit cd2a55
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Packit cd2a55
Packit cd2a55
Except as contained in this notice, the name of The Open Group shall not be
Packit cd2a55
used in advertising or otherwise to promote the sale, use or other dealings
Packit cd2a55
in this Software without prior written authorization from The Open Group.
Packit cd2a55
Packit cd2a55
*/
Packit cd2a55
Packit cd2a55
/*
Packit cd2a55
 * The interfaces described by this header file are for miscellaneous utilities
Packit cd2a55
 * and are not part of the Xlib standard.
Packit cd2a55
 */
Packit cd2a55
Packit cd2a55
#ifndef _XMU_H_
Packit cd2a55
#define _XMU_H_
Packit cd2a55
Packit cd2a55
#include <X11/Xfuncproto.h>
Packit cd2a55
#include <X11/Intrinsic.h>
Packit cd2a55
#include <X11/Xmu/Atoms.h>		/* _XA_... */
Packit cd2a55
#include <X11/Xmu/CharSet.h>		/* CopyISOLatin1Lowered */
Packit cd2a55
#include <X11/Xmu/Converters.h>		/* CvtStringTo... */
Packit cd2a55
#include <X11/Xmu/Drawing.h>		/* DrawRoundedRect, DrawLogo */
Packit cd2a55
#include <X11/Xmu/Error.h>		/* PrintDefaultError */
Packit cd2a55
#include <X11/Xmu/StdSel.h>		/* ConvertStandardSelection */
Packit cd2a55
Packit cd2a55
/*
Packit cd2a55
 * clip lists
Packit cd2a55
 */
Packit cd2a55
typedef struct _XmuSegment {
Packit cd2a55
  int x1, x2;
Packit cd2a55
  struct _XmuSegment *next;
Packit cd2a55
} XmuSegment;
Packit cd2a55
Packit cd2a55
typedef struct _XmuScanline {
Packit cd2a55
  int y;
Packit cd2a55
  XmuSegment *segment;
Packit cd2a55
  struct _XmuScanline *next;
Packit cd2a55
} XmuScanline;
Packit cd2a55
Packit cd2a55
typedef struct _XmuArea {
Packit cd2a55
  XmuScanline *scanline;
Packit cd2a55
} XmuArea;
Packit cd2a55
Packit cd2a55
#define XmuCreateArea()		XmuNewArea(0, 0, 0, 0)
Packit cd2a55
#define XmuAreaOr(dst, src)	XmuAreaOrXor((dst), (src), True)
Packit cd2a55
#define XmuAreaXor(dst, src)	XmuAreaOrXor((dst), (src), False)
Packit cd2a55
Packit cd2a55
#define XmuDestroyArea(a)					\
Packit cd2a55
		  do {						\
Packit cd2a55
		    XmuDestroyScanlineList((a)->scanline);	\
Packit cd2a55
		    XtFree((char *)(a));			\
Packit cd2a55
		  } while (0)
Packit cd2a55
Packit cd2a55
#define FreeArea(a)						\
Packit cd2a55
		  do {						\
Packit cd2a55
		    XmuDestroyScanlineList((a)->scanline);	\
Packit cd2a55
		    a->scanline = (Scanline *)0;		\
Packit cd2a55
		  } while (0)
Packit cd2a55
Packit cd2a55
#define XmuValidSegment(s)	((s)->x1 < (s)->x2)
Packit cd2a55
#define XmuSegmentEqu(s1, s2)	((s1)->x1 == (s2)->x1 && (s1)->x2 == (s2)->x2)
Packit cd2a55
#define XmuDestroySegment(s)	XtFree((char *)(s))
Packit cd2a55
Packit cd2a55
#define XmuDestroyScanline(s)					\
Packit cd2a55
		  do {						\
Packit cd2a55
		    XmuDestroySegmentList((s)->segment);	\
Packit cd2a55
		    XtFree((char*)(s));				\
Packit cd2a55
		  } while (0)
Packit cd2a55
Packit cd2a55
XmuArea *XmuNewArea(int, int, int, int);
Packit cd2a55
XmuArea *XmuAreaDup(XmuArea*);
Packit cd2a55
XmuArea *XmuAreaCopy(XmuArea*, XmuArea*);
Packit cd2a55
XmuArea *XmuAreaNot(XmuArea*, int, int, int, int);
Packit cd2a55
XmuArea *XmuAreaOrXor(XmuArea*, XmuArea*, Bool);
Packit cd2a55
XmuArea *XmuAreaAnd(XmuArea*, XmuArea*);
Packit cd2a55
Bool XmuValidArea(XmuArea*);
Packit cd2a55
Bool XmuValidScanline(XmuScanline*);
Packit cd2a55
Bool XmuScanlineEqu(XmuScanline*, XmuScanline*);
Packit cd2a55
XmuSegment *XmuNewSegment(int, int);
Packit cd2a55
void XmuDestroySegmentList(XmuSegment*);
Packit cd2a55
XmuScanline *XmuScanlineCopy(XmuScanline*, XmuScanline*);
Packit cd2a55
Bool XmuAppendSegment(XmuSegment*, XmuSegment*);
Packit cd2a55
XmuScanline *XmuOptimizeScanline(XmuScanline*);
Packit cd2a55
XmuScanline *XmuScanlineNot(XmuScanline *scanline, int, int);
Packit cd2a55
XmuScanline *XmuScanlineOr(XmuScanline*, XmuScanline*);
Packit cd2a55
XmuScanline *XmuScanlineAnd(XmuScanline*, XmuScanline*);
Packit cd2a55
XmuScanline *XmuScanlineXor(XmuScanline*, XmuScanline*);
Packit cd2a55
XmuScanline *XmuNewScanline(int, int, int);
Packit cd2a55
void XmuDestroyScanlineList(XmuScanline*);
Packit cd2a55
XmuArea *XmuOptimizeArea(XmuArea *area);
Packit cd2a55
Packit cd2a55
#ifndef notdef
Packit cd2a55
XmuScanline *XmuScanlineOrSegment(XmuScanline*, XmuSegment*);
Packit cd2a55
XmuScanline *XmuScanlineAndSegment(XmuScanline*, XmuSegment*);
Packit cd2a55
XmuScanline *XmuScanlineXorSegment(XmuScanline*, XmuSegment*);
Packit cd2a55
#endif /* notdef */
Packit cd2a55
Packit cd2a55
#ifndef _SYSUTIL_H_
Packit cd2a55
int XmuSnprintf(char *str, int size, _Xconst char *fmt, ...)
Packit cd2a55
    _X_ATTRIBUTE_PRINTF(3,4);
Packit cd2a55
#endif
Packit cd2a55
Packit cd2a55
#endif /* _XMU_H_ */
Packit cd2a55