29#include <X11/cursorfont.h>
30#include <X11/keysym.h>
46struct MWMHintsProperty_t {
65struct KeySymbolMap_t {
76#ifndef XK_ISO_Left_Tab
140struct RXGCValues:XGCValues{};
141struct RXColor:XColor{};
142struct RXpmAttributes:XpmAttributes{};
143struct RXSetWindowAttributes:XSetWindowAttributes{};
144struct RVisual:Visual{};
163 conv.i[0] = (
Int_t) i1;
164 conv.i[1] = (
Int_t) i2;
174 XGetErrorText(disp, err->error_code, msg, 80);
176 if (!err->resourceid)
return 0;
182 ::Error(
"RootX11ErrorHandler",
"%s (XID: %u, XREQ: %u)", msg,
183 (
UInt_t)err->resourceid, err->request_code);
185 ::Error(
"RootX11ErrorHandler",
"%s (%s XID: %u, XREQ: %u)", msg, w->
ClassName(),
186 (
UInt_t)err->resourceid, err->request_code);
202 ::Error(
"RootX11IOErrorHandler",
"fatal X11 error (connection to server lost?!)");
203 fprintf(stderr,
"\n**** Save data and exit application ****\n\n");
367 XSetWindowBackgroundPixmap((Display*)
fDisplay, (
Window)
id, (Pixmap) pxm);
378 RXSetWindowAttributes xattr;
388 if (
fColormap && !(xmask & CWColormap)) {
393 xmask |= CWBorderPixel;
398 w,
h, border, depth, clss, (Visual*)visual,
408 Long_t lxemask = NoEventMask;
410 lxemask |= KeyPressMask;
412 lxemask |= KeyReleaseMask;
414 lxemask |= ButtonPressMask;
416 lxemask |= ButtonReleaseMask;
418 lxemask |= PointerMotionMask;
420 lxemask |= ButtonMotionMask;
422 lxemask |= ExposureMask;
424 lxemask |= StructureNotifyMask;
426 lxemask |= EnterWindowMask;
428 lxemask |= LeaveWindowMask;
430 lxemask |= FocusChangeMask;
432 lxemask |= OwnerGrabButtonMask;
434 lxemask |= ColormapChangeMask;
438 if ((xemask & KeyPressMask))
440 if ((xemask & KeyReleaseMask))
442 if ((xemask & ButtonPressMask))
444 if ((xemask & ButtonReleaseMask))
446 if ((xemask & PointerMotionMask))
448 if ((xemask & ButtonMotionMask))
450 if ((xemask & ExposureMask))
452 if ((xemask & StructureNotifyMask))
454 if ((xemask & EnterWindowMask))
456 if ((xemask & LeaveWindowMask))
458 if ((xemask & FocusChangeMask))
460 if ((xemask & OwnerGrabButtonMask))
462 if ((xemask & ColormapChangeMask))
471 ULong_t &xmask, RXSetWindowAttributes &xattr)
477 xmask |= CWBackPixmap;
479 xattr.background_pixmap = None;
481 xattr.background_pixmap = ParentRelative;
486 xmask |= CWBackPixel;
490 xmask |= CWBorderPixmap;
494 xmask |= CWBorderPixel;
498 xmask |= CWBitGravity;
502 xmask |= CWWinGravity;
506 xmask |= CWBackingStore;
508 xattr.backing_store = NotUseful;
510 xattr.backing_store = WhenMapped;
512 xattr.backing_store = Always;
517 xmask |= CWBackingPlanes;
521 xmask |= CWBackingPixel;
525 xmask |= CWOverrideRedirect;
529 xmask |= CWSaveUnder;
533 xmask |= CWEventMask;
536 xattr.event_mask = xmsk;
539 xmask |= CWDontPropagate;
572 xmask |= GCPlaneMask;
576 xmask |= GCForeground;
580 xmask |= GCBackground;
584 xmask |= GCLineWidth;
588 xmask |= GCLineStyle;
596 xmask |= GCJoinStyle;
600 xmask |= GCFillStyle;
609 xgval.tile = (Pixmap) gval.
fTile;
613 xgval.stipple = (Pixmap) gval.
fStipple;
616 xmask |= GCTileStipXOrigin;
620 xmask |= GCTileStipYOrigin;
626 xgval.font = (Font) gval.
fFont;
630 xmask |= GCSubwindowMode;
634 xmask |= GCGraphicsExposures;
638 xmask |= GCClipXOrigin;
642 xmask |= GCClipYOrigin;
647 xgval.clip_mask = (Pixmap) gval.
fClipMask;
650 xmask |= GCDashOffset;
655 xgval.dashes = gval.
fDashes[0];
666 if ((xmask & GCFunction)) {
670 if ((xmask & GCPlaneMask)) {
674 if ((xmask & GCForeground)) {
678 if ((xmask & GCBackground)) {
682 if ((xmask & GCLineWidth)) {
686 if ((xmask & GCLineStyle)) {
690 if ((xmask & GCCapStyle)) {
694 if ((xmask & GCJoinStyle)) {
698 if ((xmask & GCFillStyle)) {
702 if ((xmask & GCFillRule)) {
706 if ((xmask & GCTile)) {
710 if ((xmask & GCStipple)) {
714 if ((xmask & GCTileStipXOrigin)) {
718 if ((xmask & GCTileStipYOrigin)) {
722 if ((xmask & GCFont)) {
726 if ((xmask & GCSubwindowMode)) {
730 if ((xmask & GCGraphicsExposures)) {
734 if ((xmask & GCClipXOrigin)) {
738 if ((xmask & GCClipYOrigin)) {
742 if ((xmask & GCClipMask)) {
746 if ((xmask & GCDashOffset)) {
750 if ((xmask & GCDashList)) {
752 gval.
fDashes[0] = xgval.dashes;
755 if ((xmask & GCArcMode)) {
770 XWindowAttributes xattr;
772 XGetWindowAttributes((Display*)
fDisplay,
id, &xattr);
776 attr.
fWidth = xattr.width;
779 attr.
fDepth = xattr.depth;
820 Warning(
"OpenDisplay",
"system has no X11 thread support");
825 if (!(dpy = XOpenDisplay(dpyName)))
833 XSynchronize(dpy, 1);
839 return ConnectionNumber(dpy);
907 Atom a = XInternAtom((Display*)
fDisplay, (
char *)atom_name, (Bool)only_if_exist);
909 if (
a == None)
return kNone;
933 XQueryTree((Display*)
fDisplay, (
Window)
id, &root, &parent, &children, &nchildren);
935 if (children) XFree(children);
948 XFontStruct *fs = XLoadQueryFont((Display*)
fDisplay, (
char *)font_name);
958 XFontStruct *fss = (XFontStruct *)fs;
1006 XChangeGC((Display*)
fDisplay, (GC) gc, xmask, &xgval);
1042 XFreeGC((Display*)
fDisplay, (GC) gc);
1081 width, height, forecolor, backcolor, depth);
1115 xmask |= XpmColormap;
1120 xpmattr.depth = attr.
fDepth;
1124 xpmattr.width = attr.
fWidth;
1125 xpmattr.height = attr.
fHeight;
1128 xmask |= XpmHotspot;
1133 xmask |= XpmReturnPixels;
1135 xpmattr.npixels = 0;
1138 xmask |= XpmCloseness;
1141 xpmattr.valuemask = xmask;
1143 ULong_t xmask = xpmattr.valuemask;
1149 if ((xmask & XpmColormap)) {
1153 attr.
fDepth = xpmattr.depth;
1155 if ((xmask & XpmSize)) {
1157 attr.
fWidth = xpmattr.width;
1158 attr.
fHeight = xpmattr.height;
1160 if ((xmask & XpmHotspot)) {
1165 if ((xmask & XpmReturnPixels)) {
1167 if (xpmattr.npixels) {
1169 for (
UInt_t i = 0; i < xpmattr.npixels; i++)
1170 attr.
fPixels[i] = xpmattr.pixels[i];
1174 if ((xmask & XpmCloseness)) {
1192 if (strstr(filename,
".gif") || strstr(filename,
".GIF")) {
1193 pict =
ReadGIF(0, 0, filename,
id);
1202 RXpmAttributes xpmattr;
1208 xpmattr.valuemask |= XpmDepth;
1213 (Pixmap*)&pict, (Pixmap*)&pict_mask, &xpmattr);
1216 XpmFreeAttributes(&xpmattr);
1218 if (res == XpmSuccess || res == XpmColorError)
1222 XFreePixmap((Display*)
fDisplay, (Pixmap)pict);
1226 XFreePixmap((Display*)
fDisplay, (Pixmap)pict_mask);
1230 Error(
"CreatePictureFromFile",
"cannot get picture, not compiled with Xpm");
1245 RXpmAttributes xpmattr;
1251 xpmattr.valuemask |= XpmDepth;
1256 (Pixmap*)&pict_mask, &xpmattr);
1259 XpmFreeAttributes(&xpmattr);
1261 if (res == XpmSuccess || res == XpmColorError)
1265 XFreePixmap((Display*)
fDisplay, (Pixmap)pict);
1269 XFreePixmap((Display*)
fDisplay, (Pixmap)pict_mask);
1273 Error(
"CreatePictureFromData",
"cannot get picture, not compiled with Xpm");
1286 if (XpmReadFileToData((
char*)filename, ret_data) == XpmSuccess)
1289 Error(
"ReadPictureFromDataFile",
"cannot get picture, not compiled with Xpm");
1314 XSetDashes((Display*)
fDisplay, (GC) gc, offset, (
char *)dash_list,
n);
1322 xcolor.pixel = color->
fPixel;
1323 xcolor.red = color->
fRed;
1324 xcolor.green = color->
fGreen;
1325 xcolor.blue = color->
fBlue;
1326 xcolor.flags = color->
fMask;
1342 color.
fRed = xc.red;
1344 color.
fBlue = xc.blue;
1388 color.
fRed = xc.red;
1390 color.
fBlue = xc.blue;
1408 return XPending((Display*)
fDisplay);
1432 xstate |= ShiftMask;
1436 xstate |= ControlMask;
1448 xstate |= Button1Mask;
1450 xstate |= Button2Mask;
1452 xstate |= Button3Mask;
1454 xstate |= AnyModifier;
1457 if ((xstate & ShiftMask))
1459 if ((xstate & LockMask))
1461 if ((xstate & ControlMask))
1463 if ((xstate & Mod1Mask))
1465 if ((xstate & Mod2Mask))
1467 if ((xstate & Mod3Mask))
1469 if ((xstate & Mod4Mask))
1471 if ((xstate & Mod5Mask))
1473 if ((xstate & Button1Mask))
1475 if ((xstate & Button2Mask))
1477 if ((xstate & Button3Mask))
1479 if ((xstate & AnyModifier))
1490 XEvent &xev = *(XEvent *)xevi;
1517 xev.xany.display = (Display*)
fDisplay;
1520 xev.xkey.time = (Time) ev.
fTime;
1523 xev.xkey.x_root = ev.
fXRoot;
1524 xev.xkey.y_root = ev.
fYRoot;
1526 xev.xkey.keycode = ev.
fCode;
1529 xev.xselection.time = (Time) ev.
fTime;
1531 xev.xselection.selection = (
Atom) ev.
fUser[1];
1532 xev.xselection.target = (
Atom) ev.
fUser[2];
1533 xev.xselection.property = (
Atom) ev.
fUser[3];
1536 xev.xclient.message_type = ev.
fHandle;
1537 xev.xclient.format = ev.
fFormat;
1538 xev.xclient.data.l[0] = ev.
fUser[0];
1539 if (
sizeof(ev.
fUser[0]) > 4) {
1540 SplitLong(ev.
fUser[1], xev.xclient.data.l[1], xev.xclient.data.l[3]);
1541 SplitLong(ev.
fUser[2], xev.xclient.data.l[2], xev.xclient.data.l[4]);
1543 xev.xclient.data.l[1] = ev.
fUser[1];
1544 xev.xclient.data.l[2] = ev.
fUser[2];
1545 xev.xclient.data.l[3] = ev.
fUser[3];
1546 xev.xclient.data.l[4] = ev.
fUser[4];
1580 ev.
fXRoot = xev.xkey.x_root;
1581 ev.
fYRoot = xev.xkey.y_root;
1583 ev.
fCode = xev.xkey.keycode;
1584 ev.
fUser[0] = xev.xkey.subwindow;
1588 ev.
fX = xev.xbutton.x;
1589 ev.
fY = xev.xbutton.y;
1590 ev.
fXRoot = xev.xbutton.x_root;
1591 ev.
fYRoot = xev.xbutton.y_root;
1593 ev.
fCode = xev.xbutton.button;
1594 ev.
fUser[0] = xev.xbutton.subwindow;
1598 ev.
fX = xev.xmotion.x;
1599 ev.
fY = xev.xmotion.y;
1600 ev.
fXRoot = xev.xmotion.x_root;
1601 ev.
fYRoot = xev.xmotion.y_root;
1603 ev.
fUser[0] = xev.xmotion.subwindow;
1607 ev.
fX = xev.xcrossing.x;
1608 ev.
fY = xev.xcrossing.y;
1609 ev.
fXRoot = xev.xcrossing.x_root;
1610 ev.
fYRoot = xev.xcrossing.y_root;
1611 ev.
fCode = xev.xcrossing.mode;
1616 ev.
fCode = xev.xfocus.mode;
1617 ev.
fState = xev.xfocus.detail;
1620 ev.
fX = xev.xexpose.x;
1621 ev.
fY = xev.xexpose.y;
1622 ev.
fWidth = xev.xexpose.width;
1623 ev.
fHeight = xev.xexpose.height;
1624 ev.
fCount = xev.xexpose.count;
1627 ev.
fX = xev.xconfigure.x;
1628 ev.
fY = xev.xconfigure.y;
1629 ev.
fWidth = xev.xconfigure.width;
1630 ev.
fHeight = xev.xconfigure.height;
1636 ev.
fHandle = xev.xdestroywindow.window;
1639 ev.
fHandle = xev.xclient.message_type;
1640 ev.
fFormat = xev.xclient.format;
1641 ev.
fUser[0] = xev.xclient.data.l[0];
1642 if (
sizeof(ev.
fUser[0]) > 4) {
1643 AsmLong(xev.xclient.data.l[1], xev.xclient.data.l[3], ev.
fUser[1]);
1644 AsmLong(xev.xclient.data.l[2], xev.xclient.data.l[4], ev.
fUser[2]);
1646 ev.
fUser[1] = xev.xclient.data.l[1];
1647 ev.
fUser[2] = xev.xclient.data.l[2];
1648 ev.
fUser[3] = xev.xclient.data.l[3];
1649 ev.
fUser[4] = xev.xclient.data.l[4];
1653 ev.
fUser[0] = xev.xselectionclear.selection;
1657 ev.
fUser[0] = xev.xselectionrequest.requestor;
1658 ev.
fUser[1] = xev.xselectionrequest.selection;
1659 ev.
fUser[2] = xev.xselectionrequest.target;
1660 ev.
fUser[3] = xev.xselectionrequest.property;
1664 ev.
fUser[0] = xev.xselection.requestor;
1665 ev.
fUser[1] = xev.xselection.selection;
1666 ev.
fUser[2] = xev.xselection.target;
1667 ev.
fUser[3] = xev.xselection.property;
1670 ev.
fHandle = xev.xcolormap.colormap;
1671 ev.
fCode = xev.xcolormap.state;
1672 ev.
fState = xev.xcolormap.c_new;
1682 XBell((Display*)
fDisplay, percent);
1694 if (!src || !
dest)
return;
1707 RXSetWindowAttributes xattr;
1713 XChangeWindowAttributes((Display*)
fDisplay, (
Window)
id, xmask, &xattr);
1730 8, PropModeReplace, data, len);
1774 tev.
fX = tev.
fY = 0;
1779 Bool
r = XCheckTypedWindowEvent((Display*)
fDisplay, (
Window)
id, xev.type, &xev);
1791 if (!ev || !
id)
return;
1818 XAutoRepeatOff((Display*)
fDisplay);
1837 GrabModeAsync, GrabModeAsync);
1862 XGrabButton((Display*)
fDisplay, button, xmod, (
Window)
id, True, xevmask,
1863 GrabModeAsync, GrabModeAsync, (
Window) confine,
1883 XGrabPointer((Display*)
fDisplay, (
Window)
id, (Bool) owner_events,
1884 xevmask, GrabModeAsync, GrabModeAsync, (
Window) confine,
1885 (
Cursor) cursor, CurrentTime);
1887 XUngrabPointer((Display*)
fDisplay, CurrentTime);
1897 XTextProperty wname;
1899 if (XStringListToTextProperty(&
name, 1, &wname) == 0) {
1900 Error(
"SetWindowName",
"cannot allocate window name \"%s\"",
name);
1914 XTextProperty wname;
1916 if (XStringListToTextProperty(&
name, 1, &wname) == 0) {
1917 Error(
"SetIconName",
"cannot allocate icon name \"%s\"",
name);
1933 hints.flags = IconPixmapHint;
1934 hints.icon_pixmap = (Pixmap) pic;
1946 XClassHint class_hints;
1948 class_hints.res_class = className;
1949 class_hints.res_name = resourceName;
1960 MWMHintsProperty_t prop;
1962 prop.fDecorations = value;
1963 prop.fFunctions = funcs;
1964 prop.fInputMode = input;
1980 hints.flags = USPosition | PPosition;
1996 hints.flags = USSize | PSize | PBaseSize;
1997 hints.width = hints.base_width = w;
1998 hints.height = hints.base_height =
h;
2015 hints.flags = PMinSize | PMaxSize | PResizeInc;
2016 hints.min_width = (
Int_t)wmin;
2017 hints.max_width = (
Int_t)wmax;
2018 hints.min_height = (
Int_t)hmin;
2019 hints.max_height = (
Int_t)hmax;
2020 hints.width_inc = (
Int_t)winc;
2021 hints.height_inc = (
Int_t)hinc;
2034 Int_t xstate = NormalState;
2037 xstate = NormalState;
2039 xstate = IconicState;
2041 hints.flags = StateHint;
2042 hints.initial_state = xstate;
2061 const char *s,
Int_t len)
2073 return XTextWidth((XFontStruct*) font, (
char*) s, len);
2081 XFontStruct *
f = (XFontStruct *) font;
2083 max_ascent =
f->max_bounds.ascent;
2084 max_descent =
f->max_bounds.descent;
2104 XGetGCValues((Display*)
fDisplay, (GC) gc, xmask, &xgval);
2117 fs = XQueryFont((Display*)
fDisplay, (Font) fh);
2128 static int xfree86_400 = -1;
2129 if (xfree86_400 == -1) {
2130 if (strstr(XServerVendor((Display*)
fDisplay),
"XFree86") &&
2131 XVendorRelease((Display*)
fDisplay) == 4000)
2137 if (xfree86_400 == 0)
2138 XFreeFontInfo(0, (XFontStruct *) fs, 1);
2161 return XKeysymToKeycode((Display*)
fDisplay, xkeysym);
2191 XDrawSegments((Display*)
fDisplay, (
Drawable)
id, (GC) gc, (XSegment *) seg, nseg);
2219 XGetInputFocus((Display*)
fDisplay, &focus, &return_to);
2230 XWindowAttributes xattr;
2234 if (xattr.map_state == IsViewable)
2235 XSetInputFocus((Display*)
fDisplay, (
Window)
id, RevertToParent, CurrentTime);
2274 (
Window)
id, (Time) when);
2290 int n = XLookupString(&xev.xkey, buf, buflen-1, &xkeysym, 0);
2292 Error(
"LookupString",
"buf too small, must be at least %d",
n+1);
2298 keysym = (
Int_t) ks;
2308 xkeysym = XK_VoidSymbol;
2314 for (
int i = 0;
gKeyMap[i].fKeySym; i++) {
2324 if (xkeysym < 127) {
2326 }
else if (xkeysym >= XK_F1 && xkeysym <= XK_F35) {
2327 keysym =
kKey_F1 + (xkeysym - XK_F1);
2328 }
else if (xkeysym >= XK_KP_0 && xkeysym <= XK_KP_9) {
2329 keysym =
kKey_0 + (xkeysym - XK_KP_0);
2331 for (
int i = 0;
gKeyMap[i].fXKeySym; i++) {
2332 if (xkeysym ==
gKeyMap[i].fXKeySym) {
2350 Atom actual_type,
property = (
Atom) atom;
2352 ULong_t nitems, bytes_after, nread;
2353 unsigned char *data;
2358 if (property == None)
return;
2363 if (XGetWindowProperty((Display*)
fDisplay, (
Window)
id, property,
2364 nread/4, 1024, (Bool)del,
2366 &actual_type, &actual_format,
2367 &nitems, &bytes_after,
2368 (
unsigned char **) &data)
2378 }
while (bytes_after > 0);
2380 nchar = (
Int_t) nread;
2392 if (!src || !
dest)
return;
2397 src_y, &dest_x, &dest_y, &xchild);
2428 Convex, CoordModeOrigin);
2449 XQueryPointer((Display*)
fDisplay, (
Window)
id, &xrootw, &xchildw,
2450 &root_x, &root_y, &win_x, &win_y, &xmask);
2464 XSetForeground((Display*)
fDisplay, (GC) gc, foreground);
2474 XSetClipRectangles((Display*)
fDisplay, (GC) gc,
x,
y, (XRectangle *) recs,
n, Unsorted);
2503 XDestroyRegion((Region)reg);
2511 XRectangle *
r = (XRectangle *) rect;
2512 XUnionRectWithRegion(
r, (Region) src, (Region)
dest);
2521 XPoint *p = (XPoint *)
points;
2522 return (
Region_t) XPolygonRegion(p, np, winding ? WindingRule : EvenOddRule);
2531 XUnionRegion((Region) rega, (Region) regb, (Region) result);
2540 XIntersectRegion((Region) rega, (Region) regb, (Region) result);
2548 XSubtractRegion((Region) rega, (Region) regb, (Region) result);
2557 XXorRegion((Region) rega, (Region) regb, (Region) result);
2565 return (
Bool_t) XEmptyRegion((Region) reg);
2573 return (
Bool_t) XPointInRegion((Region) reg,
x,
y);
2581 return (
Bool_t) XEqualRegion((Region) rega, (Region) regb);
2589 XClipBox((Region) reg, (XRectangle*) rect);
2598 Int_t fontcount = 0;
2599 fontlist = XListFonts((Display*)
fDisplay, (
char *)fontname, max, &fontcount);
2609 XFreeFontNames(fontlist);
2627 0, 0,
width, height, bitmap_pad, 0);
2630 if (xim) xim->data = (
char *)
calloc(xim->bytes_per_line * xim->height, 1);
2640 width = ((XImage*)img)->width;
2641 height = ((XImage*)img)->height;
2649 XPutPixel((XImage*) img,
x,
y, pixel);
2661 x,
y, dx, dy, w,
h);
2669 XDestroyImage((XImage*) img);
2688 return (
UInt_t)WidthMMOfScreen(DefaultScreenOfDisplay((Display*)
fDisplay));
2698 XDeleteProperty((Display*)
fDisplay, win, prop);
2710 unsigned char **prop_list)
2712 return XGetWindowProperty((Display*)
fDisplay, win, prop, offset, length, del, req_type,
2713 act_type, act_format, nitems, bytes, prop_list);
2727 XChangeActivePointerGrab((Display*)
fDisplay, xevmask, cur, CurrentTime);
2737 XConvertSelection((Display*)
fDisplay, sel, target, prop, win, stamp);
2745 return XSetSelectionOwner((Display*)
fDisplay, sel, owner, CurrentTime);
2759 format, PropModeReplace, data, len);
2768 unsigned char version = 4;
2771 32, PropModeReplace, (
unsigned char *) &version, 1);
2776 for (
n = 0; typelist[
n];
n++) { }
2778 XChangeProperty((Display*)
fDisplay, win, dndaware,
XA_ATOM, 32, PropModeAppend,
2779 (
unsigned char *) typelist,
n);
2791 for (
n = 0; typelist[
n];
n++) { }
2793 XChangeProperty((Display*)
fDisplay, win, prop,
XA_ATOM, 32, PropModeAppend,
2794 (
unsigned char *) typelist,
n);
2805 int x,
int y,
int maxd)
2808 static Atom_t *dndTypeList = 0;
2810 if (dndTypeList == 0) {
2811 dndTypeList =
new Atom_t[3];
2817 if (maxd <= 0)
return kNone;
2819 if (win == dragwin || win == input)
return kNone;
2826 if (
IsDNDAware(win, dndTypeList))
return win;
2832 if (XQueryTree((Display*)
fDisplay, win, &
r, &p, &children, &numch)) {
2833 if (children && numch > 0) {
2837 for (i = numch-1; i >= 0; --i) {
2839 x - wattr.
fX,
y - wattr.
fY, maxd-1);
2860 unsigned char *data = 0;
2867 if (dndaware ==
kNone)
2870 XGetWindowProperty((Display*)
fDisplay, win, dndaware, 0, 0x8000000L,
kFALSE,
2871 XA_ATOM, &actual, &format, &count, &remaining, &data);
2873 if ((actual !=
XA_ATOM) || (format != 32) || (count == 0) || !data) {
2874 if (data) XFree(data);
2880 if ((count > 1) && typelist) {
2882 for (t = typelist; *t; t++) {
2883 for (
ULong_t j = 1; j < count; j++) {
2884 if (types[j] == *t) {
const Int_t kPropMotifWMHintsElements
static KeySymbolMap_t gKeyMap[]
static Int_t RootX11IOErrorHandler(Display *)
Handle X11 I/O error (happens when connection to display server is broken).
const ULong_t kMWMHintsInputMode
const ULong_t kMWMHintsDecorations
const Int_t kPropMWMHintElements
const ULong_t kMWMHintsFunctions
void AsmLong(Long_t i1, Long_t i2, Long_t &ll)
static Int_t RootX11ErrorHandler(Display *disp, XErrorEvent *err)
Handle X11 error.
void SplitLong(Long_t ll, Long_t &i1, Long_t &i2)
const Mask_t kWABorderPixel
const Mask_t kWAOverrideRedirect
const Mask_t kWABitGravity
const Mask_t kGCDashOffset
const Mask_t kGCBackground
const Mask_t kGCForeground
const Mask_t kPAReturnPixels
const Mask_t kGCLineStyle
const Mask_t kWADontPropagate
const Mask_t kKeyMod5Mask
const Mask_t kGCSubwindowMode
const Mask_t kGCLineWidth
Handle_t Cursor_t
Cursor handle.
const Mask_t kKeyMod4Mask
const Mask_t kButtonMotionMask
const Mask_t kKeyMod3Mask
const Mask_t kGCClipXOrigin
const Mask_t kWABackingStore
const Mask_t kFocusChangeMask
const Mask_t kKeyLockMask
ULong_t Handle_t
Generic resource handle.
const Mask_t kButtonPressMask
const Mask_t kPACloseness
Handle_t FontH_t
Font handle (as opposed to Font_t which is an index)
const Mask_t kKeyMod1Mask
typically the Alt key
Handle_t Visual_t
Visual handle.
const Mask_t kExposureMask
const Mask_t kWAEventMask
const Mask_t kGCFillStyle
const Mask_t kGCJoinStyle
const Mask_t kKeyReleaseMask
const Mask_t kWASaveUnder
const Mask_t kWABackPixel
Handle_t Display_t
Display handle.
const Mask_t kWAWinGravity
const Mask_t kOwnerGrabButtonMask
const Mask_t kAnyModifier
Handle_t Pixmap_t
Pixmap handle.
const Mask_t kKeyPressMask
ULong_t Time_t
Event time.
EInitialState
Initial window mapping state.
const Mask_t kButton1Mask
const Mask_t kGCTileStipXOrigin
const Mask_t kWABackingPixel
Handle_t Drawable_t
Drawable handle.
const Mask_t kColormapChangeMask
const Mask_t kPointerMotionMask
Handle_t Colormap_t
Colormap handle.
const Mask_t kKeyShiftMask
const Mask_t kKeyControlMask
const Mask_t kKeyMod2Mask
typically mod on numeric keys
const Mask_t kButton3Mask
const Mask_t kLeaveWindowMask
const Mask_t kStructureNotifyMask
const Mask_t kButton2Mask
const Handle_t kParentRelative
Handle_t GContext_t
Graphics context handle.
const Mask_t kGCPlaneMask
const Mask_t kButtonReleaseMask
const Mask_t kGCGraphicsExposures
const Mask_t kGCClipYOrigin
const Mask_t kWABorderPixmap
const Mask_t kPASize
width and height
Handle_t Region_t
Region handle.
const Mask_t kEnterWindowMask
Handle_t FontStruct_t
Pointer to font structure.
const Mask_t kPAHotspot
x and y hotspot
const Mask_t kGCTileStipYOrigin
EMouseButton
Button names.
Handle_t Window_t
Window handle.
const Mask_t kWABackPixmap
const Mask_t kWABorderWidth
const Mask_t kWABackingPlanes
static const double x2[5]
static const double x1[5]
include TDocParser_001 C image html pict1_TDocParser_001 png width
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
R__EXTERN void Throw(int code)
If an exception context has been set (using the TRY and RETRY macros) jump back to where it was set.
char * Form(const char *fmt,...)
R__EXTERN TSystem * gSystem
R__EXTERN TFileHandler * gXDisplay
R__EXTERN Atom_t gMOTIF_WM_HINTS
R__EXTERN Atom_t gWM_DELETE_WINDOW
virtual Int_t GetValue(const char *name, Int_t dflt) const
Returns the integer value for a resource.
void QueryColor(Colormap_t cmap, ColorStruct_t &color)
Fill in the primary color components for a specific pixel value.
void SetForeground(GContext_t gc, ULong_t foreground)
Set foreground color in graphics context (shortcut for ChangeGC with only foreground mask set).
Drawable_t CreateImage(UInt_t width, UInt_t height)
Create a client-side XImage. Returns handle to XImage.
void * fDisplay
Pointer to display.
void NextEvent(Event_t &event)
Copies first pending event from event queue to Event_t structure and removes event from queue.
void QueryPointer(Int_t &ix, Int_t &iy)
Query pointer position.
void SetIconName(Window_t id, char *name)
Set window icon name.
Bool_t ParseColor(Colormap_t cmap, const char *cname, ColorStruct_t &color)
Parse string cname containing color name, like "green" or "#00FF00".
Colormap fColormap
Default colormap, 0 if b/w.
Window_t GetPrimarySelectionOwner()
Returns the window id of the current owner of the primary selection.
void FreeFontNames(char **fontlist)
Free list of font names.
void WMDeleteNotify(Window_t id)
Tell WM to send message when window is closed via WM.
void ChangeGC(GContext_t gc, GCValues_t *gval)
Change entries in an existing graphics context, gc, by values from gval.
Int_t GetScreen() const
Returns screen number (might be useful in some cases where direct X11 manipulation outside of TVirtua...
void ChangeActivePointerGrab(Window_t, UInt_t, Cursor_t)
Changes the specified dynamic parameters if the pointer is actively grabbed by the client.
void MapEvent(Event_t &ev, void *xev, Bool_t tox=kTRUE)
Map Event_t structure to XEvent structure.
Cursor_t CreateCursor(ECursor cursor)
Create cursor handle (just return cursor from cursor pool fCursors).
void CloseDisplay()
Close connection to display server.
void ChangeProperties(Window_t id, Atom_t property, Atom_t type, Int_t format, UChar_t *data, Int_t len)
This function alters the property for the specified window and causes the X server to generate a Prop...
Bool_t CreatePictureFromFile(Drawable_t id, const char *filename, Pixmap_t &pict, Pixmap_t &pict_mask, PictureAttributes_t &attr)
Create a picture pixmap from data on file.
Int_t fScreenNumber
Screen number.
void DrawString(Drawable_t id, GContext_t gc, Int_t x, Int_t y, const char *s, Int_t len)
Draw a string using a specific graphics context in position (x,y).
Window_t GetInputFocus()
Returns the window id of the window having the input focus.
void SetWMTransientHint(Window_t id, Window_t main_id)
Tell window manager that window is a transient window of main.
void DeleteGC(GContext_t gc)
Explicitly delete a graphics context.
Colormap_t GetColormap() const
Returns handle to colormap (might be useful in some cases where direct X11 manipulation outside of TV...
void DestroyRegion(Region_t reg)
Destroy region.
Pixmap_t CreatePixmap(Drawable_t id, UInt_t w, UInt_t h)
Creates a pixmap of the width and height you specified and returns a pixmap ID that identifies it.
Cursor fCursors[kNumCursors]
List of cursors.
Bool_t AllocColor(Colormap cmap, RXColor *color)
Allocate color in colormap.
void SubtractRegion(Region_t rega, Region_t regb, Region_t result)
Subtract rega from regb.
void ConvertSelection(Window_t, Atom_t &, Atom_t &, Atom_t &, Time_t &)
Requests that the specified selection be converted to the specified target type.
void DrawRectangle(Drawable_t id, GContext_t gc, Int_t x, Int_t y, UInt_t w, UInt_t h)
Draw a rectangle outline.
void DeletePixmap(Pixmap_t pmap)
Explicitly delete pixmap resource.
FontH_t GetFontHandle(FontStruct_t fs)
Return handle to font described by font structure.
void MapSubwindows(Window_t id)
Map sub windows.
void SetInputFocus(Window_t id)
Set keyboard input focus to window id.
void DeletePictureData(void *data)
Delete picture data created by the function ReadPictureDataFromFile.
void SetWMState(Window_t id, EInitialState state)
Set the initial state of the window. Either kNormalState or kIconicState.
void UnionRectWithRegion(Rectangle_t *rect, Region_t src, Region_t dest)
Union of rectangle with a region.
void MapEventMask(UInt_t &emask, UInt_t &xemask, Bool_t tox=kTRUE)
Map event mask to or from X.
void IconifyWindow(Window_t id)
Iconify the window.
void PutPixel(Drawable_t id, Int_t x, Int_t y, ULong_t pixel)
Set pixel at specified location in XImage img.
void GetImageSize(Drawable_t id, UInt_t &width, UInt_t &height)
Get size of XImage img.
void RaiseWindow(Window_t id)
Put window on top of window stack.
void SetWMPosition(Window_t id, Int_t x, Int_t y)
Tell the window manager the desired window position.
void SetDashes(GContext_t gc, Int_t offset, const char *dash_list, Int_t n)
Specify a dash pattern.
void UnionRegion(Region_t rega, Region_t regb, Region_t result)
Compute the union of rega and regb and return result region.
void FreeFontStruct(FontStruct_t fs)
Free font structure returned by GetFontStruct().
void SetCursor(Int_t win, ECursor cursor)
Set the cursor.
Window_t GetParent(Window_t id) const
Return the parent of the window.
void MoveWindow(Int_t wid, Int_t x, Int_t y)
Move the window wid.
void MapKeySym(UInt_t &keysym, UInt_t &xkeysym, Bool_t tox=kTRUE)
Map to and from X key symbols.
Bool_t fHasXft
True when XftFonts are used.
void ShapeCombineMask(Window_t id, Int_t x, Int_t y, Pixmap_t mask)
The Nonrectangular Window Shape Extension adds nonrectangular windows to the System.
void SetWindowName(Window_t id, char *name)
Set window name.
Bool_t EqualRegion(Region_t rega, Region_t regb)
Returns true if two regions are equal.
void GetFontProperties(FontStruct_t font, Int_t &max_ascent, Int_t &max_descent)
Return some font properties.
Int_t GetDepth() const
Returns depth of screen (number of bit planes).
Visual_t GetVisual() const
Returns handle to visual (might be useful in some cases where direct X11 manipulation outside of TVir...
void MapGCValues(GCValues_t &gval, ULong_t &xmask, RXGCValues &xgval, Bool_t tox=kTRUE)
Map a GCValues_t to a XCGValues structure if tox is true.
void CopyGC(GContext_t org, GContext_t dest, Mask_t mask)
Copies graphics context from org to dest.
void SelectInput(Window_t id, UInt_t evmask)
Defines which input events the window is interested in.
Window_t GetDefaultRootWindow() const
Return handle to the default root window created when calling XOpenDisplay().
void FreeColor(Colormap_t cmap, ULong_t pixel)
Free color cell with specified pixel value.
Drawable fRootWin
Root window used as parent of all windows.
Int_t KeysymToKeycode(UInt_t keysym)
Convert a keysym to the appropriate keycode.
Window_t FindRWindow(Window_t win, Window_t dragwin, Window_t input, int x, int y, int maxd)
Recursively search in the children of Window for a Window which is at location x, y and is DND aware,...
void IntersectRegion(Region_t rega, Region_t regb, Region_t result)
Compute the intersection of rega and regb and return result region.
void * fXEvent
Current native (X11) event.
Int_t TextWidth(FontStruct_t font, const char *s, Int_t len)
Return length of string in pixels. Size depends on font.
void SetWindowBackground(Window_t id, ULong_t color)
Set the window background color.
FontStruct_t GetFontStruct(FontH_t fh)
Retrieve associated font structure once we have the font handle.
void SetDNDAware(Window_t, Atom_t *)
Add XdndAware property and the list of drag and drop types to the Window win.
void ChangeWindowAttributes(Window_t id, SetWindowAttributes_t *attr)
Change window attributes.
void SetPrimarySelectionOwner(Window_t id)
Makes the window id the current owner of the primary selection.
void LookupString(Event_t *event, char *buf, Int_t buflen, UInt_t &keysym)
Convert the keycode from the event structure to a key symbol (according to the modifiers specified in...
void ClearArea(Window_t id, Int_t x, Int_t y, UInt_t w, UInt_t h)
Clear a window area to the background color.
Bool_t CreatePictureFromData(Drawable_t id, char **data, Pixmap_t &pict, Pixmap_t &pict_mask, PictureAttributes_t &attr)
Create a picture pixmap from data.
Bool_t PointInRegion(Int_t x, Int_t y, Region_t reg)
Returns true if the point x,y is in the region.
void SetTypeList(Window_t win, Atom_t prop, Atom_t *typelist)
Add the list of drag and drop types to the Window win.
void ClearWindow()
Clear current window.
void DeleteFont(FontStruct_t fs)
Explicitly delete font structure obtained with LoadQueryFont().
void FillRectangle(Drawable_t id, GContext_t gc, Int_t x, Int_t y, UInt_t w, UInt_t h)
Draw a filled rectangle. Filling is done according to the gc.
Int_t EventsPending()
Returns number of pending events.
Drawable fVisRootWin
Root window with fVisual to be used to create GC's and XImages.
void SetWindowBackgroundPixmap(Window_t id, Pixmap_t pxm)
Set pixmap as window background.
Window_t CreateWindow(Window_t parent, Int_t x, Int_t y, UInt_t w, UInt_t h, UInt_t border, Int_t depth, UInt_t clss, void *visual, SetWindowAttributes_t *attr, UInt_t wtype)
Return handle to newly created X window.
void SetWMSizeHints(Window_t id, UInt_t wmin, UInt_t hmin, UInt_t wmax, UInt_t hmax, UInt_t winc, UInt_t hinc)
Give the window manager minimum and maximum size hints.
void GrabPointer(Window_t id, UInt_t evmask, Window_t confine, Cursor_t cursor, Bool_t grab=kTRUE, Bool_t owner_events=kTRUE)
Establish an active pointer grab.
char ** ListFonts(const char *fontname, Int_t max, Int_t &count)
Return list of font names matching fontname regexp, like "-*-times-*".
GContext_t CreateGC(Drawable_t id, GCValues_t *gval)
Create a graphics context using the values set in gval (but only for those entries that are in the ma...
void DeleteImage(Drawable_t img)
Destroy XImage img.
void GrabButton(Window_t id, EMouseButton button, UInt_t modifier, UInt_t evmask, Window_t confine, Cursor_t cursor, Bool_t grab=kTRUE)
Establish passive grab on a certain mouse button.
Atom_t InternAtom(const char *atom_name, Bool_t only_if_exist)
Return atom handle for atom_name.
Bool_t EmptyRegion(Region_t reg)
Return true if the region is empty.
void DestroySubwindows(Window_t id)
Destroy subwindows of this window.
void ChangeProperty(Window_t id, Atom_t property, Atom_t type, UChar_t *data, Int_t len)
This function alters the property for the specified window and causes the X server to generate a Prop...
Int_t fRedDiv
Red value divider, -1 if no TrueColor visual.
Int_t fDepth
Number of color planes.
void SetMWMHints(Window_t id, UInt_t value, UInt_t funcs, UInt_t input)
Set decoration style for MWM-compatible wm (mwm, ncdwm, fvwm?).
void ResizeWindow(Int_t wid)
Resize the current window if necessary.
Region_t CreateRegion()
Create a new empty region.
Int_t GetProperty(Window_t, Atom_t, Long_t, Long_t, Bool_t, Atom_t, Atom_t *, Int_t *, ULong_t *, ULong_t *, unsigned char **)
Returns the actual type of the property; the actual format of the property; the number of 8-bit,...
void UnmapWindow(Window_t id)
Unmap window from screen.
void TranslateCoordinates(Window_t src, Window_t dest, Int_t src_x, Int_t src_y, Int_t &dest_x, Int_t &dest_y, Window_t &child)
TranslateCoordinates translates coordinates from the frame of reference of one window to another.
void GrabKey(Window_t id, Int_t keycode, UInt_t modifier, Bool_t grab=kTRUE)
Establish passive grab on a certain key.
void ReparentWindow(Window_t id, Window_t pid, Int_t x, Int_t y)
Reparent window to new parent window at position (x,y).
void SetClassHints(Window_t id, char *className, char *resourceName)
Set the windows class and resource name.
void SetClipRectangles(GContext_t gc, Int_t x, Int_t y, Rectangle_t *recs, Int_t n)
Set clipping rectangles in graphics context.
FontStruct_t LoadQueryFont(const char *font_name)
Load font and query font.
void ConvertPrimarySelection(Window_t id, Atom_t clipboard, Time_t when)
XConvertSelection() causes a SelectionRequest event to be sent to the current primary selection owner...
ULong_t fBlackPixel
Value of black pixel in colormap.
void GetGCValues(GContext_t gc, GCValues_t &gval)
Get current values from graphics context gc.
void SetWMSize(Window_t id, UInt_t w, UInt_t h)
Tell the window manager the desired window size.
void DrawSegments(Drawable_t id, GContext_t gc, Segment_t *seg, Int_t nseg)
Draws multiple line segments. Each line is specified by a pair of points.
void DestroyWindow(Window_t id)
Destroy window.
Bool_t Init(void *display)
Initialize X11 system. Returns kFALSE in case of failure.
void GetWindowAttributes(Window_t id, WindowAttributes_t &attr)
Get window attributes and return filled in attributes structure.
void GetWindowSize(Drawable_t id, Int_t &x, Int_t &y, UInt_t &w, UInt_t &h)
Return geometry of window (should be called GetGeometry but signature already used).
void DrawLine(Int_t x1, Int_t y1, Int_t x2, Int_t y2)
Draw a line.
Display_t GetDisplay() const
Returns handle to display (might be useful in some cases where direct X11 manipulation outside of TVi...
void MapPictureAttributes(PictureAttributes_t &attr, RXpmAttributes &xpmattr, Bool_t toxpm=kTRUE)
Map a PictureAttributes_t to a XpmAttributes structure.
Int_t OpenDisplay(void *display)
Open the display. Return -1 if the opening fails, 0 when ok.
Bool_t IsDNDAware(Window_t win, Atom_t *typelist)
Checks if Window win is DND aware, and knows any of the DND formats passed in argument.
UInt_t ScreenWidthMM() const
Returns the width of the screen in millimeters.
void Bell(Int_t percent)
Sound bell. Percent is loudness from -100% .. 100%.
void LowerWindow(Window_t id)
Lower window so it lays below all its siblings.
void Update(Int_t mode=0)
Flush (mode = 0, default) or synchronize (mode = 1) X output buffer.
Pixmap_t ReadGIF(Int_t x0, Int_t y0, const char *file, Window_t id=0)
If id is NULL - loads the specified gif file at position [x0,y0] in the current window.
void DeleteProperty(Window_t, Atom_t &)
Deletes the specified property only if the property was defined on the specified window and causes th...
void MoveResizeWindow(Window_t id, Int_t x, Int_t y, UInt_t w, UInt_t h)
Move and resize a window.
Bool_t CheckEvent(Window_t id, EGEventType type, Event_t &ev)
Check if there is for window "id" an event of type "type".
Region_t PolygonRegion(Point_t *points, Int_t np, Bool_t winding)
Create region for the polygon defined by the points array.
void GetPasteBuffer(Window_t id, Atom_t atom, TString &text, Int_t &nchar, Bool_t del)
Get contents of paste buffer atom into string.
RVisual * fVisual
Pointer to visual used by all windows.
void SetIconPixmap(Window_t id, Pixmap_t pic)
Set pixmap the WM can use when the window is iconized.
void MapRaised(Window_t id)
Map window on screen and put on top of all windows.
void SendEvent(Window_t id, Event_t *ev)
Send event ev to window id.
void MapWindow(Window_t id)
Map window on screen.
void SetKeyAutoRepeat(Bool_t on=kTRUE)
Turn key auto repeat on or off.
void MapSetWindowAttributes(SetWindowAttributes_t *attr, ULong_t &xmask, RXSetWindowAttributes &xattr)
Map a SetWindowAttributes_t to a XSetWindowAttributes structure.
void PutImage(Int_t offset, Int_t itran, Int_t x0, Int_t y0, Int_t nx, Int_t ny, Int_t xmin, Int_t ymin, Int_t xmax, Int_t ymax, UChar_t *image, Drawable_t id)
Draw image.
Bool_t SetSelectionOwner(Window_t, Atom_t &)
Changes the owner and last-change time for the specified selection.
Bool_t ReadPictureDataFromFile(const char *filename, char ***ret_data)
Read picture data from file and store in ret_data.
void FillPolygon(Window_t id, GContext_t gc, Point_t *points, Int_t npnt)
FillPolygon fills the region closed by the specified path.
void MapModifierState(UInt_t &state, UInt_t &xstate, Bool_t tox=kTRUE)
Map modifier key state to or from X.
Pixmap_t CreateBitmap(Drawable_t id, const char *bitmap, UInt_t width, UInt_t height)
Create a bitmap (i.e. pixmap with depth 1) from the bitmap data.
void CopyArea(Drawable_t src, Drawable_t dest, GContext_t gc, Int_t src_x, Int_t src_y, UInt_t width, UInt_t height, Int_t dest_x, Int_t dest_y)
Copy a drawable (i.e.
void XorRegion(Region_t rega, Region_t regb, Region_t result)
Calculate the difference between the union and intersection of two regions.
void MapColorStruct(ColorStruct_t *color, RXColor &xcolor)
Map a ColorStruct_t to a XColor structure.
void GetRegionBox(Region_t reg, Rectangle_t *)
Return smallest enclosing rectangle.
Mother of all ROOT objects.
virtual const char * ClassName() const
Returns name of class to which the object belongs.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
virtual void Print(Option_t *option="") const
This method must be overridden when a class wants to print itself.
static Bool_t Initialized()
Return kTRUE if the TROOT object has been initialized.
virtual TFileHandler * RemoveFileHandler(TFileHandler *fh)
Remove a file handler from the list of file handlers.
virtual void MapGCFont(GContext_t, FontStruct_t)
Map the XftFont with the Graphics Context using it.
void XShapeCombineMask(Display *, Window, int, int, int, Pixmap, int)
ULong_t fPixel
color pixel value (index in color table)
UShort_t fRed
red component (0..65535)
UShort_t fGreen
green component (0..65535)
UShort_t fBlue
blue component (0..65535)
UShort_t fMask
mask telling which color components are valid
EGEventType fType
of event (see EGEventType)
Int_t fY
pointer x, y coordinates in event window
Bool_t fSendEvent
true if event came from SendEvent
Handle_t fHandle
general resource handle (used for atoms or windows)
Int_t fFormat
Next fields only used by kClientMessageEvent.
UInt_t fHeight
width and height of exposed area
Int_t fCount
if non-zero, at least this many more exposes
Window_t fWindow
window reported event is relative to
UInt_t fState
key or button mask
Int_t fYRoot
coordinates relative to root
Long_t fUser[5]
5 longs can be used by client message events NOTE: only [0], [1] and [2] may be used.
Time_t fTime
time event event occurred in ms
UInt_t fCode
key or button code
Graphics context structure.
ULong_t fBackground
background pixel
Int_t fFillRule
kEvenOddRule, kWindingRule
Pixmap_t fClipMask
bitmap clipping; other calls for rects
Int_t fDashOffset
patterned/dashed line information
Int_t fClipXOrigin
origin for clipping
Int_t fLineWidth
line width
Pixmap_t fStipple
stipple 1 plane pixmap for stippling
Mask_t fMask
bit mask specifying which fields are valid
Int_t fLineStyle
kLineSolid, kLineOnOffDash, kLineDoubleDash
Pixmap_t fTile
tile pixmap for tiling operations
Bool_t fGraphicsExposures
boolean, should exposures be generated
Int_t fJoinStyle
kJoinMiter, kJoinRound, kJoinBevel
Char_t fDashes[8]
dash pattern list (dash length per byte)
ULong_t fForeground
foreground pixel
ULong_t fPlaneMask
plane mask
Int_t fFillStyle
kFillSolid, kFillTiled, kFillStippled, kFillOpaeueStippled
FontH_t fFont
default text font for text operations
Int_t fTsXOrigin
offset for tile or stipple operations
EGraphicsFunction fFunction
logical operation
Int_t fDashLen
number of dashes in fDashes
Int_t fCapStyle
kCapNotLast, kCapButt, kCapRound, kCapProjecting
Int_t fArcMode
kArcChord, kArcPieSlice
Int_t fSubwindowMode
kClipByChildren, kIncludeInferiors
UInt_t fHeight
height of picture
Mask_t fMask
mask specifying which attributes are defined
ULong_t * fPixels
list of used color pixels (if set use delete[])
Colormap_t fColormap
colormap to use
UInt_t fCloseness
allowable RGB deviation
Int_t fDepth
depth of window
UInt_t fNpixels
number of used color pixels
UInt_t fYHotspot
picture y hotspot coordinate
UInt_t fXHotspot
picture x hotspot coordinate
UInt_t fWidth
width of picture
Point structure (maps to the X11 XPoint structure)
Rectangle structure (maps to the X11 XRectangle structure)
Used for drawing line segments (maps to the X11 XSegments structure)
Attributes that can be used when creating or changing a window.
ULong_t fBackingPlanes
planes to be preserved if possible
UInt_t fBorderWidth
border width in pixels
Long_t fEventMask
set of events that should be saved
Pixmap_t fBackgroundPixmap
background or kNone or kParentRelative
Long_t fDoNotPropagateMask
set of events that should not propagate
ULong_t fBackingPixel
value to use in restoring planes
Pixmap_t fBorderPixmap
border of the window
Bool_t fOverrideRedirect
boolean value for override-redirect
Mask_t fMask
bit mask specifying which fields are valid
Int_t fWinGravity
one of the window gravity values
ULong_t fBackgroundPixel
background pixel
Cursor_t fCursor
cursor to be displayed (or kNone)
Int_t fBitGravity
one of bit gravity values
Int_t fBackingStore
kNotUseful, kWhenMapped, kAlways
ULong_t fBorderPixel
border pixel value
Bool_t fSaveUnder
should bits under be saved (popups)?
Colormap_t fColormap
color map to be associated with window
Window attributes that can be inquired.
Window_t fRoot
root of screen containing window
Int_t fMapState
kIsUnmapped, kIsUnviewable, kIsViewable
ULong_t fBackingPlanes
planes to be preserved if possible
Long_t fAllEventMasks
set of events all people have interest in
ULong_t fBackingPixel
value to be used when restoring planes
Long_t fYourEventMask
my event mask
Int_t fHeight
width and height of window
Bool_t fMapInstalled
boolean, is color map currently installed
Int_t fBorderWidth
border width of window
Int_t fWinGravity
one of the window gravity values
void * fScreen
back pointer to correct screen
Long_t fDoNotPropagateMask
set of events that should not propagate
Colormap_t fColormap
color map to be associated with window
Int_t fClass
kInputOutput, kInputOnly
Int_t fBitGravity
one of bit gravity values
void * fVisual
the associated visual structure
Int_t fBackingStore
kNotUseful, kWhenMapped, kAlways
Int_t fY
location of window
Int_t fDepth
depth of window
Bool_t fOverrideRedirect
boolean value for override-redirect
Bool_t fSaveUnder
boolean, should bits under be saved?
#define dest(otri, vertexptr)
#define org(otri, vertexptr)