Xmu.h revision e120bd27
11.11Sriastrad/* 21.1Sriastrad 31.1SriastradCopyright 1988, 1998 The Open Group 41.1Sriastrad 51.1SriastradPermission to use, copy, modify, distribute, and sell this software and its 61.1Sriastraddocumentation for any purpose is hereby granted without fee, provided that 71.1Sriastradthe above copyright notice appear in all copies and that both that 81.1Sriastradcopyright notice and this permission notice appear in supporting 91.1Sriastraddocumentation. 101.1Sriastrad 111.1SriastradThe above copyright notice and this permission notice shall be included in 121.1Sriastradall copies or substantial portions of the Software. 131.1Sriastrad 141.2SriastradTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 151.11SriastradIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 161.2SriastradFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 171.2SriastradOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 181.2SriastradAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 191.1SriastradCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 201.1Sriastrad 211.1SriastradExcept as contained in this notice, the name of The Open Group shall not be 221.1Sriastradused in advertising or otherwise to promote the sale, use or other dealings 231.1Sriastradin this Software without prior written authorization from The Open Group. 241.1Sriastrad 251.1Sriastrad*/ 261.1Sriastrad 271.1Sriastrad/* 281.1Sriastrad * The interfaces described by this header file are for miscellaneous utilities 291.1Sriastrad * and are not part of the Xlib standard. 301.1Sriastrad */ 311.1Sriastrad 321.1Sriastrad#ifndef _XMU_H_ 331.1Sriastrad#define _XMU_H_ 341.1Sriastrad 351.1Sriastrad#include <X11/Xfuncproto.h> 361.1Sriastrad#include <X11/Intrinsic.h> 371.1Sriastrad#include <X11/Xmu/Atoms.h> /* _XA_... */ 381.1Sriastrad#include <X11/Xmu/CharSet.h> /* CopyISOLatin1Lowered */ 391.1Sriastrad#include <X11/Xmu/Converters.h> /* CvtStringTo... */ 401.1Sriastrad#include <X11/Xmu/Drawing.h> /* DrawRoundedRect, DrawLogo */ 411.1Sriastrad#include <X11/Xmu/Error.h> /* PrintDefaultError */ 421.1Sriastrad#include <X11/Xmu/StdSel.h> /* ConvertStandardSelection */ 431.1Sriastrad 441.1Sriastrad/* 451.1Sriastrad * clip lists 461.1Sriastrad */ 471.1Sriastradtypedef struct _XmuSegment { 481.1Sriastrad int x1, x2; 491.1Sriastrad struct _XmuSegment *next; 501.1Sriastrad} XmuSegment; 511.1Sriastrad 521.1Sriastradtypedef struct _XmuScanline { 531.1Sriastrad int y; 541.1Sriastrad XmuSegment *segment; 551.1Sriastrad struct _XmuScanline *next; 561.1Sriastrad} XmuScanline; 571.1Sriastrad 581.1Sriastradtypedef struct _XmuArea { 591.1Sriastrad XmuScanline *scanline; 601.1Sriastrad} XmuArea; 611.1Sriastrad 621.1Sriastrad#define XmuCreateArea() XmuNewArea(0, 0, 0, 0) 631.1Sriastrad#define XmuAreaOr(dst, src) XmuAreaOrXor((dst), (src), True) 641.1Sriastrad#define XmuAreaXor(dst, src) XmuAreaOrXor((dst), (src), False) 651.1Sriastrad 661.1Sriastrad#define XmuDestroyArea(a) \ 671.1Sriastrad do { \ 681.1Sriastrad XmuDestroyScanlineList((a)->scanline); \ 691.1Sriastrad XtFree((char *)(a)); \ 701.1Sriastrad } while (0) 711.1Sriastrad 721.1Sriastrad#define FreeArea(a) \ 731.1Sriastrad do { \ 741.1Sriastrad XmuDestroyScanlineList((a)->scanline); \ 751.1Sriastrad a->scanline = (Scanline *)0; \ 761.1Sriastrad } while (0) 771.1Sriastrad 781.1Sriastrad#define XmuValidSegment(s) ((s)->x1 < (s)->x2) 791.1Sriastrad#define XmuSegmentEqu(s1, s2) ((s1)->x1 == (s2)->x1 && (s1)->x2 == (s2)->x2) 801.1Sriastrad#define XmuDestroySegment(s) XtFree((char *)(s)) 811.1Sriastrad 821.1Sriastrad#define XmuDestroyScanline(s) \ 831.1Sriastrad do { \ 841.1Sriastrad XmuDestroySegmentList((s)->segment); \ 851.1Sriastrad XtFree((char*)(s)); \ 861.1Sriastrad } while (0) 871.1Sriastrad 881.1SriastradXmuArea *XmuNewArea(int, int, int, int); 891.1SriastradXmuArea *XmuAreaDup(XmuArea*); 901.1SriastradXmuArea *XmuAreaCopy(XmuArea*, XmuArea*); 911.1SriastradXmuArea *XmuAreaNot(XmuArea*, int, int, int, int); 921.1SriastradXmuArea *XmuAreaOrXor(XmuArea*, XmuArea*, Bool); 931.1SriastradXmuArea *XmuAreaAnd(XmuArea*, XmuArea*); 941.1SriastradBool XmuValidArea(XmuArea*); 951.1SriastradBool XmuValidScanline(XmuScanline*); 961.1SriastradBool XmuScanlineEqu(XmuScanline*, XmuScanline*); 971.1SriastradXmuSegment *XmuNewSegment(int, int); 981.1Sriastradvoid XmuDestroySegmentList(XmuSegment*); 991.1SriastradXmuScanline *XmuScanlineCopy(XmuScanline*, XmuScanline*); 1001.1SriastradBool XmuAppendSegment(XmuSegment*, XmuSegment*); 1011.1SriastradXmuScanline *XmuOptimizeScanline(XmuScanline*); 1021.1SriastradXmuScanline *XmuScanlineNot(XmuScanline *scanline, int, int); 1031.1SriastradXmuScanline *XmuScanlineOr(XmuScanline*, XmuScanline*); 1041.1SriastradXmuScanline *XmuScanlineAnd(XmuScanline*, XmuScanline*); 1051.1SriastradXmuScanline *XmuScanlineXor(XmuScanline*, XmuScanline*); 1061.1SriastradXmuScanline *XmuNewScanline(int, int, int); 1071.1Sriastradvoid XmuDestroyScanlineList(XmuScanline*); 1081.1SriastradXmuArea *XmuOptimizeArea(XmuArea *area); 1091.1Sriastrad 1101.1Sriastrad#ifndef notdef 1111.1SriastradXmuScanline *XmuScanlineOrSegment(XmuScanline*, XmuSegment*); 1121.1SriastradXmuScanline *XmuScanlineAndSegment(XmuScanline*, XmuSegment*); 1131.1SriastradXmuScanline *XmuScanlineXorSegment(XmuScanline*, XmuSegment*); 1141.1Sriastrad#endif /* notdef */ 1151.1Sriastrad 1161.1Sriastrad#ifndef _SYSUTIL_H_ 1171.1Sriastradint XmuSnprintf(char *str, int size, _Xconst char *fmt, ...) 1181.1Sriastrad _X_ATTRIBUTE_PRINTF(3,4); 1191.1Sriastrad#endif 1201.1Sriastrad 1211.1Sriastrad#endif /* _XMU_H_ */ 1221.1Sriastrad 1231.1Sriastrad