52#include <X11/cursorfont.h>
53#include <X11/keysym.h>
62# include <sys/socket.h>
77 int,
int,
char*,
int);
1750x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1760x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1770x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
397 if (!
ctxt->fIsPixmap && !
ctxt->fDoubleBuffer) {
425 if (!
gCws->fNewColors.empty()) {
428 gCws->fNewColors.clear();
431 if (!
gCws->fShared) {
440 for (
int i = 0; i <
kMAXGC; ++i)
443 if (
gCws->fillPattern != 0) {
445 gCws->fillPattern = 0;
451 if (iter->second.get() ==
gCws) {
458 Fatal(
"CloseWindow",
"Not found gCws in list of windows");
462 if (iter->second && iter->second->fOpen) {
463 gCws = iter->second.get();
538 for (i = 0; i <
nx; i++) {
540 for (
j = 0;
j <
ny;
j++) {
575 if (
ctxt->fillHollow)
657 for (
int i = 1; i <
n; i++) {
664 ctxt->dashOffset %=
ctxt->dashLength;
737 if ((
ctxt->markerShape.size() == 0) && (
ctxt->markerSize <= 0)) {
738 const int kNMAX = 1000000;
740 for (
int it=0;it<=
nt;it++) {
748 int r =
ctxt->markerSize / 2;
749 auto &shape =
ctxt->markerShape;
751 for (
int m = 0;
m <
n;
m++) {
752 if (
ctxt->markerType == 0) {
756 }
else if (
ctxt->markerType == 1) {
761 for (
size_t i = 0; i < shape.size(); i++) {
762 shape[i].x +=
xyp[
m].x;
763 shape[i].y +=
xyp[
m].y;
765 switch(
ctxt->markerType) {
779 (
XSegment *) shape.data(), shape.size()/2);
782 for (
size_t i = 0; i < shape.size(); i++) {
783 shape[i].x -=
xyp[
m].x;
784 shape[i].y -=
xyp[
m].y;
841 if (!
text || !
ctxt->textFont ||
ctxt->fAttText.GetTextSize() < 0)
879 {
nullptr, 0 , 0 , 24 ,
TrueColor , 0 , 0 , 0 , 0 , 0 },
880 {
nullptr, 0 , 0 , 32 ,
TrueColor , 0 , 0 , 0 , 0 , 0 },
881 {
nullptr, 0 , 0 , 16 ,
TrueColor , 0 , 0 , 0 , 0 , 0 },
882 {
nullptr, 0 , 0 , 15 ,
TrueColor , 0 , 0 , 0 , 0 , 0 },
884 {
nullptr, 0 , 0 , 24 ,
DirectColor, 0 , 0 , 0 , 0 , 0 },
885 {
nullptr, 0 , 0 , 32 ,
DirectColor, 0 , 0 , 0 , 0 , 0 },
886 {
nullptr, 0 , 0 , 16 ,
DirectColor, 0 , 0 , 0 , 0 , 0 },
887 {
nullptr, 0 , 0 , 15 ,
DirectColor, 0 , 0 , 0 , 0 , 0 },
888 {
nullptr, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
918 Printf(
"Selected visual 0x%lx: depth %d, class %d, colormap: %s",
963 attr.override_redirect = True;
1022 Error(
"GetGC",
"trying to get illegal GC (which = %d)",
which);
1026 Error(
"GetGC",
"No current window selected");
1050 Error(
"GetGC",
"No window context specified");
1055 Error(
"GetGC",
"trying to get illegal GC (which = %d)",
which);
1080 return gTws->fDoubleBuffer;
1103 unsigned int border,
depth;
1162 }
else if (
index == 1) {
1215 if (!
gTws->fOpen)
return;
1264 gFont[i].id =
nullptr;
1284 Warning(
"OpenDisplay",
"no default font loaded");
1325 if ((
fVisual->blue_mask >> i) == 1) {
1333 if ((
fVisual->green_mask >> i) == 1) {
1341 if ((
fVisual->red_mask >> i) == 1) {
1362 if (!pair.second->fOpen) {
1363 pair.second->fOpen = 1;
1366 if (pair.first >
maxid)
1374 for (
int id = 1;
id <
maxid;
id++) {
1394 Error(
"AddWindowHandle",
"cannot get GC values");
1417 unsigned int ww,
hh, border,
depth;
1428 for (
int i = 0; i <
kMAXGC; i++)
1438 gCws->fDoubleBuffer = 0;
1439 gCws->fIsPixmap = 1;
1469 gCws->fDoubleBuffer = 0;
1479 attributes.backing_store = Always;
1500 gCws->fDoubleBuffer = 0;
1501 gCws->fIsPixmap = 0;
1518 gCws->fDoubleBuffer = 0;
1525 gCws->fDoubleBuffer = 0;
1526 gCws->fIsPixmap = 0;
1598 static int xloc = 0;
1599 static int yloc = 0;
1600 static int xlocp = 0;
1601 static int ylocp = 0;
1700 xloc =
event.xbutton.x;
1701 yloc =
event.xbutton.y;
1703 switch (event.type) {
1718 xlocp =
event.xbutton.x;
1719 ylocp =
event.xbutton.y;
1727 xlocp =
event.xbutton.x;
1728 ylocp =
event.xbutton.y;
1735 xlocp =
event.xbutton.x;
1736 ylocp =
event.xbutton.y;
1743 xlocp =
event.xbutton.x;
1744 ylocp =
event.xbutton.y;
1758 x =
event.xbutton.x;
1759 y =
event.xbutton.y;
1812 switch (event.type) {
1838 for (i =
nt - 1; i >
pt; i--)
1852 for (i =
pt; i <
nt; i++)
1871 for (i =
pt; i <
nt; i++)
1889 for (i =
pt; i <
nt; i++)
1935 if (!
gTws->fOpen)
return;
1938 if (
gTws->fWidth ==
w &&
gTws->fHeight ==
h)
return;
1942 if (
gTws->fBuffer) {
1948 for (
int i = 0; i <
kMAXGC; i++)
1953 if (
gTws->fDoubleBuffer)
1971 unsigned int ww,
hh, border,
depth;
1992 for (i = 0; i <
kMAXGC; i++)
2030 if (
gTws->fBuffer) {
2035 for (
int i = 0; i <
kMAXGC; i++)
2040 if (
gTws->fDoubleBuffer)
2060 if (
gCws->fClip && !
gCws->fIsPixmap && !
gCws->fDoubleBuffer) {
2066 for (
int i = 0; i <
kMAXGC; i++)
2069 for (
int i = 0; i <
kMAXGC; i++)
2103 for (
int i = 0; i <
kMAXGC; i++)
2122 if (
gTws->fClip && !
gTws->fIsPixmap && !
gTws->fDoubleBuffer) {
2128 for (
int i = 0; i <
kMAXGC; i++)
2161 if (values.foreground == values.background)
2188 gTws = pair.second.get();
2220 if (!
gTws->fDoubleBuffer)
return;
2221 gTws->fDoubleBuffer = 0;
2230 if (
gTws->fDoubleBuffer ||
gTws->fIsPixmap)
2232 if (!
gTws->fBuffer) {
2239 for (
int i = 0; i <
kMAXGC; i++)
2241 gTws->fDoubleBuffer = 1;
2359 Warning(
"SetLineType",
"DEPRECATED, use SetAttLine() instead");
2546 for (
int i = 0; i <
kMAXFONT; i++) {
2654 if (
ctxt->fDoubleBuffer) {
2699 if (!
ctxt->fNewColors.empty()) {
2702 ctxt->fNewColors.clear();
2707 for (std::size_t i = 0; i <
orgcolors.size(); i++) {
2717 for (std::size_t i = 0; i <
orgcolors.size(); i++) {
2722 Warning(
"SetOpacityW",
"failed to allocate color %hd, %hd, %hd",
2729 for (std::size_t i = 0; i <
orgcolors.size(); i++)
2730 ctxt->fNewColors[i] =
xcol[i].pixel;
2825 for (
int i = 0; i <
width; i++)
2862 for (
size_t i = 0; i <
orgcolors.size(); i++) {
2875 for (
size_t i = 0; i <
orgcolors.size(); i++) {
2877 G[i] =
xcol[i].green;
2878 B[i] =
xcol[i].blue;
2918 Error(
"WriteGIF",
"Cannot create GIF of image containing more than 256 colors. Try in batch mode.");
2926 for (i = 0; i <
ncol; i++) {
2935 for (i = 0; i <
ncol; i++) {
2950 Error(
"WriteGIF",
"cannot write file: %s",
name);
2978 id =
gCws->fDrawing;
2982 for (i = 0; i < 256; i++)
nlines[i] = 0;
3019 for (i = 0; i < 256; i++) {
3043 fd =
fopen(file,
"r");
3045 Error(
"ReadGIF",
"unable to open GIF file");
3052 Error(
"ReadGIF",
"unable to open GIF file");
3061 Error(
"ReadGIF",
"unable to allocate array for gif");
3067 Error(
"ReadGIF",
"GIF file read failed");
3081 Error(
"ReadGIF",
"unable to allocate array for image");
3097 for (i = 0; i <
ncolor; i++) {
3107 for (i = 1; i <=
height/2; i++) {
3110 for (k = 0; k <
width; k++) {
3115 PutImage(
offset,-1,x0,
y0,
width,
height,0,0,
width-1,
height-1,
pixArr,
pic);
3122 else if (
gCws->fDrawing)
3172 gCws->fDoubleBuffer = 0;
3173 gCws->fIsPixmap = 1;
3233 ctxt->fillHollow = 0;
3238 ctxt->fillHollow = 1;
3242 ctxt->fillHollow = 0;
3246 if (
ctxt->fillPattern != 0)
3258 ctxt->fillHollow = 1;
3271 if (
ctxt->fAttLine.GetLineStyle() !=
att.GetLineStyle()) {
3272 if (
att.GetLineStyle() <= 1)
3273 ctxt->dashList.clear();
3274 else if (
att.GetLineStyle() == 2)
3275 ctxt->dashList = { 3, 3 };
3276 else if (
att.GetLineStyle() == 3)
3277 ctxt->dashList = { 1, 2 };
3278 else if (
att.GetLineStyle() == 4) {
3279 ctxt->dashList = { 3, 4, 1, 4} ;
3284 ctxt->dashList.resize(
nt);
3292 ctxt->dashLength = 0;
3295 ctxt->dashOffset = 0;
3299 ctxt->lineWidth =
att.GetLineWidth();
3301 if (
ctxt->lineWidth == 1)
3302 ctxt->lineWidth = 0;
3304 if (
ctxt->lineWidth == 0)
3305 ctxt->lineWidth = 1;
3308 if (
ctxt->lineWidth >= 0) {
3316 if (
att.GetLineColor() >= 0) {
3336 (
att.GetMarkerStyle() !=
ctxt->fAttMarker.GetMarkerStyle());
3356 auto &shape =
ctxt->markerShape;
3357 ctxt->markerSize = 0;
3358 ctxt->markerType = 0;
3362 shape[0].x = -
im; shape[0].y = 0;
3363 shape[1].x =
im; shape[1].y = 0;
3364 shape[2].x = 0 ; shape[2].y = -
im;
3365 shape[3].x = 0 ; shape[3].y =
im;
3366 ctxt->markerType = 4;
3370 shape[0].x = -
im; shape[0].y = 0;
3371 shape[1].x =
im; shape[1].y = 0;
3372 shape[2].x = 0 ; shape[2].y = -
im;
3373 shape[3].x = 0 ; shape[3].y =
im;
3375 shape[4].x = -
im; shape[4].y = -
im;
3376 shape[5].x =
im; shape[5].y =
im;
3377 shape[6].x = -
im; shape[6].y =
im;
3378 shape[7].x =
im; shape[7].y = -
im;
3379 ctxt->markerType = 4;
3383 ctxt->markerType = 0;
3389 shape[0].x = -
im; shape[0].y = -
im;
3390 shape[1].x =
im; shape[1].y =
im;
3391 shape[2].x = -
im; shape[2].y =
im;
3392 shape[3].x =
im; shape[3].y = -
im;
3393 ctxt->markerType = 4;
3397 shape[0].x = -1 ; shape[0].y = 0;
3398 shape[1].x = 1 ; shape[1].y = 0;
3399 shape[2].x = 0 ; shape[2].y = -1;
3400 shape[3].x = 0 ; shape[3].y = 1;
3401 ctxt->markerType = 4;
3405 shape[0].x = -1 ; shape[0].y = 1;
3406 shape[1].x = 1 ; shape[1].y = 1;
3407 shape[2].x = -1 ; shape[2].y = 0;
3408 shape[3].x = 1 ; shape[3].y = 0;
3409 shape[4].x = -1 ; shape[4].y = -1;
3410 shape[5].x = 1 ; shape[5].y = -1;
3411 ctxt->markerType = 4;
3415 ctxt->markerType = 1;
3420 shape[0].x = -
im; shape[0].y = -
im;
3421 shape[1].x =
im; shape[1].y = -
im;
3422 shape[2].x =
im; shape[2].y =
im;
3423 shape[3].x = -
im; shape[3].y =
im;
3424 shape[4].x = -
im; shape[4].y = -
im;
3425 ctxt->markerType = 3;
3429 shape[0].x = -
im; shape[0].y =
im;
3430 shape[1].x =
im; shape[1].y =
im;
3431 shape[2].x = 0; shape[2].y = -
im;
3432 shape[3].x = -
im; shape[3].y =
im;
3433 ctxt->markerType = 3;
3437 shape[0].x = 0; shape[0].y =
im;
3438 shape[1].x =
im; shape[1].y = -
im;
3439 shape[2].x = -
im; shape[2].y = -
im;
3440 shape[3].x = 0; shape[3].y =
im;
3441 ctxt->markerType = 3;
3445 shape[0].x = -
im; shape[0].y = -
im;
3446 shape[1].x =
im; shape[1].y = -
im;
3447 shape[2].x =
im; shape[2].y =
im;
3448 shape[3].x = -
im; shape[3].y =
im;
3449 shape[4].x = -
im; shape[4].y = -
im;
3450 ctxt->markerType = 2;
3454 shape[0].x = -
im; shape[0].y =
im;
3455 shape[1].x =
im; shape[1].y =
im;
3456 shape[2].x = 0; shape[2].y = -
im;
3457 shape[3].x = -
im; shape[3].y =
im;
3458 ctxt->markerType = 2;
3463 shape[0].x =-
imx; shape[0].y = 0;
3464 shape[1].x = 0; shape[1].y = -
im;
3465 shape[2].x =
imx; shape[2].y = 0;
3466 shape[3].x = 0; shape[3].y =
im;
3467 shape[4].x =-
imx; shape[4].y = 0;
3468 ctxt->markerType = 2;
3473 shape[0].x = -
im; shape[0].y =-
imx;
3474 shape[1].x =-
imx; shape[1].y =-
imx;
3475 shape[2].x =-
imx; shape[2].y = -
im;
3476 shape[3].x =
imx; shape[3].y = -
im;
3477 shape[4].x =
imx; shape[4].y =-
imx;
3478 shape[5].x =
im; shape[5].y =-
imx;
3479 shape[6].x =
im; shape[6].y =
imx;
3480 shape[7].x =
imx; shape[7].y =
imx;
3481 shape[8].x =
imx; shape[8].y =
im;
3482 shape[9].x =-
imx; shape[9].y =
im;
3483 shape[10].x=-
imx; shape[10].y=
imx;
3484 shape[11].x= -
im; shape[11].y=
imx;
3485 shape[12].x= -
im; shape[12].y=-
imx;
3486 ctxt->markerType = 2;
3494 shape[0].x = -
im; shape[0].y =
im4;
3495 shape[1].x =-
im2; shape[1].y =-
im1;
3496 shape[2].x =-
im3; shape[2].y = -
im;
3497 shape[3].x = 0; shape[3].y =-
im2;
3498 shape[4].x =
im3; shape[4].y = -
im;
3499 shape[5].x =
im2; shape[5].y =-
im1;
3500 shape[6].x =
im; shape[6].y =
im4;
3501 shape[7].x =
im4; shape[7].y =
im4;
3502 shape[8].x = 0; shape[8].y =
im;
3503 shape[9].x =-
im4; shape[9].y =
im4;
3504 shape[10].x= -
im; shape[10].y=
im4;
3505 ctxt->markerType = 3;
3513 shape[0].x = -
im; shape[0].y =
im4;
3514 shape[1].x =-
im2; shape[1].y =-
im1;
3515 shape[2].x =-
im3; shape[2].y = -
im;
3516 shape[3].x = 0; shape[3].y =-
im2;
3517 shape[4].x =
im3; shape[4].y = -
im;
3518 shape[5].x =
im2; shape[5].y =-
im1;
3519 shape[6].x =
im; shape[6].y =
im4;
3520 shape[7].x =
im4; shape[7].y =
im4;
3521 shape[8].x = 0; shape[8].y =
im;
3522 shape[9].x =-
im4; shape[9].y =
im4;
3523 shape[10].x= -
im; shape[10].y=
im4;
3524 ctxt->markerType = 2;
3528 shape[0].x = 0; shape[0].y =
im;
3529 shape[1].x =
im; shape[1].y = -
im;
3530 shape[2].x = -
im; shape[2].y = -
im;
3531 shape[3].x = 0; shape[3].y =
im;
3532 ctxt->markerType = 2;
3537 shape[0].x =-
imx; shape[0].y = 0;
3538 shape[1].x = 0; shape[1].y = -
im;
3539 shape[2].x =
imx; shape[2].y = 0;
3540 shape[3].x = 0; shape[3].y =
im;
3541 shape[4].x =-
imx; shape[4].y = 0;
3542 ctxt->markerType = 3;
3547 shape[0].x = -
im; shape[0].y =-
imx;
3548 shape[1].x =-
imx; shape[1].y =-
imx;
3549 shape[2].x =-
imx; shape[2].y = -
im;
3550 shape[3].x =
imx; shape[3].y = -
im;
3551 shape[4].x =
imx; shape[4].y =-
imx;
3552 shape[5].x =
im; shape[5].y =-
imx;
3553 shape[6].x =
im; shape[6].y =
imx;
3554 shape[7].x =
imx; shape[7].y =
imx;
3555 shape[8].x =
imx; shape[8].y =
im;
3556 shape[9].x =-
imx; shape[9].y =
im;
3557 shape[10].x=-
imx; shape[10].y=
imx;
3558 shape[11].x= -
im; shape[11].y=
imx;
3559 shape[12].x= -
im; shape[12].y=-
imx;
3560 ctxt->markerType = 3;
3564 shape[0].x =-
im; shape[0].y = 0;
3565 shape[1].x = 0; shape[1].y = -
im;
3566 shape[2].x =
im; shape[2].y = 0;
3567 shape[3].x = 0; shape[3].y =
im;
3568 shape[4].x =-
im; shape[4].y = 0;
3569 shape[5].x =
im; shape[5].y = 0;
3570 shape[6].x = 0; shape[6].y =
im;
3571 shape[7].x = 0; shape[7].y =-
im;
3572 ctxt->markerType = 2;
3576 shape[0].x = -
im; shape[0].y = -
im;
3577 shape[1].x =
im; shape[1].y = -
im;
3578 shape[2].x =
im; shape[2].y =
im;
3579 shape[3].x = -
im; shape[3].y =
im;
3580 shape[4].x = -
im; shape[4].y = -
im;
3581 shape[5].x =
im; shape[5].y =
im;
3582 shape[6].x = -
im; shape[6].y =
im;
3583 shape[7].x =
im; shape[7].y = -
im;
3584 ctxt->markerType = 2;
3589 shape[0].x = 0; shape[0].y = 0;
3590 shape[1].x =-
im2; shape[1].y =
im;
3591 shape[2].x =
im2; shape[2].y =
im;
3592 shape[3].x = 0; shape[3].y = 0;
3593 shape[4].x =-
im2; shape[4].y = -
im;
3594 shape[5].x = -
im; shape[5].y = 0;
3595 shape[6].x = 0; shape[6].y = 0;
3596 shape[7].x =
im; shape[7].y = 0;
3597 shape[8].x =
im2; shape[8].y = -
im;
3598 shape[9].x = 0; shape[9].y = 0;
3599 ctxt->markerType = 2;
3604 shape[0].x = -
im; shape[0].y = 0;
3605 shape[1].x = -
im; shape[1].y =-
im2;
3606 shape[2].x =-
im2; shape[2].y = -
im;
3607 shape[3].x =
im2; shape[3].y = -
im;
3608 shape[4].x =
im; shape[4].y =-
im2;
3609 shape[5].x =
im; shape[5].y =
im2;
3610 shape[6].x =
im2; shape[6].y =
im;
3611 shape[7].x =-
im2; shape[7].y =
im;
3612 shape[8].x = -
im; shape[8].y =
im2;
3613 shape[9].x = -
im; shape[9].y = 0;
3614 shape[10].x =
im; shape[10].y = 0;
3615 shape[11].x = 0; shape[11].y = 0;
3616 shape[12].x = 0; shape[12].y = -
im;
3617 shape[13].x = 0; shape[13].y =
im;
3618 shape[14].x = 0; shape[14].y = 0;
3619 ctxt->markerType = 2;
3624 shape[0].x = 0; shape[0].y = 0;
3625 shape[1].x =-
im2; shape[1].y =
im;
3626 shape[2].x =
im2; shape[2].y =
im;
3627 shape[3].x = 0; shape[3].y = 0;
3628 shape[4].x =-
im2; shape[4].y = -
im;
3629 shape[5].x = -
im; shape[5].y = 0;
3630 shape[6].x = 0; shape[6].y = 0;
3631 shape[7].x =
im; shape[7].y = 0;
3632 shape[8].x =
im2; shape[8].y = -
im;
3633 ctxt->markerType = 3;
3638 shape[0].x = 0; shape[0].y = 0;
3639 shape[1].x =
im2; shape[1].y =
im;
3640 shape[2].x =
im; shape[2].y =
im2;
3641 shape[3].x = 0; shape[3].y = 0;
3642 shape[4].x =
im; shape[4].y = -
im2;
3643 shape[5].x =
im2; shape[5].y = -
im;
3644 shape[6].x = 0; shape[6].y = 0;
3645 shape[7].x = -
im2; shape[7].y = -
im;
3646 shape[8].x = -
im; shape[8].y = -
im2;
3647 shape[9].x = 0; shape[9].y = 0;
3648 shape[10].x = -
im; shape[10].y =
im2;
3649 shape[11].x = -
im2; shape[11].y =
im;
3650 shape[12].x = 0; shape[12].y = 0;
3651 ctxt->markerType = 2;
3656 shape[0].x = 0; shape[0].y = 0;
3657 shape[1].x =
im2; shape[1].y =
im;
3658 shape[2].x =
im; shape[2].y =
im2;
3659 shape[3].x = 0; shape[3].y = 0;
3660 shape[4].x =
im; shape[4].y = -
im2;
3661 shape[5].x =
im2; shape[5].y = -
im;
3662 shape[6].x = 0; shape[6].y = 0;
3663 shape[7].x = -
im2; shape[7].y = -
im;
3664 shape[8].x = -
im; shape[8].y = -
im2;
3665 shape[9].x = 0; shape[9].y = 0;
3666 shape[10].x = -
im; shape[10].y =
im2;
3667 shape[11].x = -
im2; shape[11].y =
im;
3668 shape[12].x = 0; shape[12].y = 0;
3669 ctxt->markerType = 3;
3674 shape[0].x= 0; shape[0].y=
im;
3675 shape[1].x= -
imx; shape[1].y=
imx;
3676 shape[2].x = -
im; shape[2].y = 0;
3677 shape[3].x = -
imx; shape[3].y = -
imx;
3678 shape[4].x = 0; shape[4].y = -
im;
3679 shape[5].x =
imx; shape[5].y = -
imx;
3680 shape[6].x =
im; shape[6].y = 0;
3681 shape[7].x=
imx; shape[7].y=
imx;
3682 shape[8].x= 0; shape[8].y=
im;
3683 ctxt->markerType = 2;
3688 shape[0].x = 0; shape[0].y =
im;
3689 shape[1].x = -
imx; shape[1].y =
imx;
3690 shape[2].x = -
im; shape[2].y = 0;
3691 shape[3].x = -
imx; shape[3].y = -
imx;
3692 shape[4].x = 0; shape[4].y = -
im;
3693 shape[5].x =
imx; shape[5].y = -
imx;
3694 shape[6].x =
im; shape[6].y = 0;
3695 shape[7].x =
imx; shape[7].y =
imx;
3696 shape[8].x = 0; shape[8].y =
im;
3697 ctxt->markerType = 3;
3702 shape[0].x = 0; shape[0].y = 0;
3703 shape[1].x =
im2; shape[1].y =
im;
3704 shape[2].x = -
im2; shape[2].y =
im;
3705 shape[3].x =
im2; shape[3].y = -
im;
3706 shape[4].x = -
im2; shape[4].y = -
im;
3707 shape[5].x = 0; shape[5].y = 0;
3708 shape[6].x =
im; shape[6].y =
im2;
3709 shape[7].x =
im; shape[7].y = -
im2;
3710 shape[8].x = -
im; shape[8].y =
im2;
3711 shape[9].x = -
im; shape[9].y = -
im2;
3712 shape[10].x = 0; shape[10].y = 0;
3713 ctxt->markerType = 2;
3719 shape[0].x =
im0; shape[0].y =
im0;
3720 shape[1].x =
im2; shape[1].y =
im;
3721 shape[2].x = -
im2; shape[2].y =
im;
3722 shape[3].x = -
im0; shape[3].y =
im0;
3723 shape[4].x = -
im; shape[4].y =
im2;
3724 shape[5].x = -
im; shape[5].y = -
im2;
3725 shape[6].x = -
im0; shape[6].y = -
im0;
3726 shape[7].x = -
im2; shape[7].y = -
im;
3727 shape[8].x =
im2; shape[8].y = -
im;
3728 shape[9].x =
im0; shape[9].y = -
im0;
3729 shape[10].x =
im; shape[10].y = -
im2;
3730 shape[11].x =
im; shape[11].y =
im2;
3731 shape[12].x =
im0; shape[12].y =
im0;
3732 ctxt->markerType = 3;
3737 shape[0].x = 0; shape[0].y =
im2;
3738 shape[1].x = -
im2; shape[1].y =
im;
3739 shape[2].x = -
im; shape[2].y =
im2;
3740 shape[3].x = -
im2; shape[3].y = 0;
3741 shape[4].x = -
im; shape[4].y = -
im2;
3742 shape[5].x = -
im2; shape[5].y = -
im;
3743 shape[6].x = 0; shape[6].y = -
im2;
3744 shape[7].x =
im2; shape[7].y = -
im;
3745 shape[8].x =
im; shape[8].y = -
im2;
3746 shape[9].x =
im2; shape[9].y = 0;
3747 shape[10].x =
im; shape[10].y =
im2;
3748 shape[11].x =
im2; shape[11].y =
im;
3749 shape[12].x = 0; shape[12].y =
im2;
3750 ctxt->markerType = 2;
3755 shape[0].x = 0; shape[0].y =
im2;
3756 shape[1].x = -
im2; shape[1].y =
im;
3757 shape[2].x = -
im; shape[2].y =
im2;
3758 shape[3].x = -
im2; shape[3].y = 0;
3759 shape[4].x = -
im; shape[4].y = -
im2;
3760 shape[5].x = -
im2; shape[5].y = -
im;
3761 shape[6].x = 0; shape[6].y = -
im2;
3762 shape[7].x =
im2; shape[7].y = -
im;
3763 shape[8].x =
im; shape[8].y = -
im2;
3764 shape[9].x =
im2; shape[9].y = 0;
3765 shape[10].x =
im; shape[10].y =
im2;
3766 shape[11].x =
im2; shape[11].y =
im;
3767 shape[12].x = 0; shape[12].y =
im2;
3768 ctxt->markerType = 3;
3773 shape[0].x = 0; shape[0].y =
im2*1.005;
3774 shape[1].x = -
im2; shape[1].y =
im;
3775 shape[2].x = -
im; shape[2].y =
im2;
3776 shape[3].x = -
im2; shape[3].y = 0;
3777 shape[4].x = -
im; shape[4].y = -
im2;
3778 shape[5].x = -
im2; shape[5].y = -
im;
3779 shape[6].x = 0; shape[6].y = -
im2;
3780 shape[7].x =
im2; shape[7].y = -
im;
3781 shape[8].x =
im; shape[8].y = -
im2;
3782 shape[9].x =
im2; shape[9].y = 0;
3783 shape[10].x =
im; shape[10].y =
im2;
3784 shape[11].x =
im2; shape[11].y =
im;
3785 shape[12].x = 0; shape[12].y =
im2*0.995;
3786 shape[13].x =
im2*0.995; shape[13].y = 0;
3787 shape[14].x = 0; shape[14].y = -
im2*0.995;
3788 shape[15].x = -
im2*0.995; shape[15].y = 0;
3789 shape[16].x = 0; shape[16].y =
im2*0.995;
3790 ctxt->markerType = 3;
3795 shape[0].x =-
imx; shape[0].y =-
imx*1.005;
3796 shape[1].x =-
imx; shape[1].y = -
im;
3797 shape[2].x =
imx; shape[2].y = -
im;
3798 shape[3].x =
imx; shape[3].y =-
imx;
3799 shape[4].x =
im; shape[4].y =-
imx;
3800 shape[5].x =
im; shape[5].y =
imx;
3801 shape[6].x =
imx; shape[6].y =
imx;
3802 shape[7].x =
imx; shape[7].y =
im;
3803 shape[8].x =-
imx; shape[8].y =
im;
3804 shape[9].x =-
imx; shape[9].y =
imx;
3805 shape[10].x = -
im; shape[10].y =
imx;
3806 shape[11].x = -
im; shape[11].y =-
imx;
3807 shape[12].x =-
imx; shape[12].y =-
imx*0.995;
3808 shape[13].x =-
imx; shape[13].y =
imx;
3809 shape[14].x =
imx; shape[14].y =
imx;
3810 shape[15].x =
imx; shape[15].y =-
imx;
3811 shape[16].x =-
imx; shape[16].y =-
imx*1.005;
3812 ctxt->markerType = 3;
3816 ctxt->markerType = 0;
3817 ctxt->markerSize = 0;
3885 Error(
"SetAttText",
"cannot get GC values");
3917 for (
int i = 0; i <
kMAXGC; i++)
Handle_t WinContext_t
Window drawing context.
Handle_t Pixmap_t
Pixmap handle.
Handle_t Window_t
Window handle.
Handle_t Drawable_t
Drawable handle.
const unsigned char gStipples[26][32]
int XRotDrawAlignedImageString(Display *, XFontStruct *, float, Drawable, GC, int, int, char *, int)
A front end to XRotPaintAlignedString: -does alignment, paints background.
int XRotDrawAlignedString(Display *, XFontStruct *, float, Drawable, GC, int, int, char *, int)
A front end to XRotPaintAlignedString: -does alignment, no background.
XPoint * XRotTextExtents(Display *, XFontStruct *, float, int, int, char *, int)
Calculate the bounding box some text will have when painted.
void XRotSetMagnification(float)
Set the font magnification factor for all subsequent operations.
short Style_t
Style number (short)
unsigned short UShort_t
Unsigned Short integer 2 bytes (unsigned short)
int Int_t
Signed integer 4 bytes (int)
unsigned char Byte_t
Byte (8 bits) (unsigned char)
short Color_t
Color number (short)
unsigned char UChar_t
Unsigned Character 1 byte (unsigned char)
constexpr ULong_t kBitsPerByte
int Seek_t
File pointer (int).
unsigned long ULong_t
Unsigned long integer 4 bytes (unsigned long). Size depends on architecture.
long Long_t
Signed long integer 4 bytes (long). Size depends on architecture.
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int)
short Width_t
Line width (short)
float Float_t
Float 4 bytes (float)
short Font_t
Font number (short)
short Short_t
Signed Short integer 2 bytes (short)
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void chupy
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t mask
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t cursor
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void cmap
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void pixel
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h offset
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize wid
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height qwid
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
Option_t Option_t fontnumber
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize id
Option_t Option_t markerstyle
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void chupx
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text CreatePixmap
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char pxname
Option_t Option_t TPoint TPoint const char x2
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t nitems
Option_t Option_t TPoint TPoint const char x1
Option_t Option_t textsize
Option_t Option_t TPoint TPoint angle
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t win
Option_t Option_t TPoint xy
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void xpos
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t attr
Option_t Option_t TPoint TPoint const char mode
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t org
Option_t Option_t TPoint TPoint const char y2
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char fontname
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void ypos
Option_t Option_t TPoint TPoint percent
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t height
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void gc
Option_t Option_t TPoint TPoint const char text
Option_t Option_t TPoint TPoint const char y1
static void PutByte(Byte_t b)
Put byte b in output stream.
XPoint * XRotTextExtents(Display *, XFontStruct *, float, int, int, char *, int)
Calculate the bounding box some text will have when painted.
static int gMarkerJoinStyle
static int gMarkerLineStyle
float XRotVersion(char *, int)
Return version/copyright information.
int GIFquantize(UInt_t width, UInt_t height, Int_t *ncol, Byte_t *red, Byte_t *green, Byte_t *blue, Byte_t *outputBuf, Byte_t *outputCmap)
static ULong_t gKeybdMask
void XRotSetMagnification(float)
Set the font magnification factor for all subsequent operations.
static void GetPixel(int y, int width, Byte_t *scline)
Get pixels in line y and put in array scline.
static Cursor gNullCursor
int GIFdecode(Byte_t *gifArr, Byte_t *pixArr, int *Width, int *Height, int *Ncols, Byte_t *R, Byte_t *G, Byte_t *B)
const char null_cursor_bits[]
int XRotDrawString(Display *, XFontStruct *, float, Drawable, GC, int, int, char *)
A front end to XRotPaintAlignedString: -no alignment, no background.
const Int_t kBIGGEST_RGB_VALUE
static void PutByte(Byte_t b)
Put byte b in output stream.
long GIFencode(int Width, int Height, Int_t Ncol, Byte_t R[], Byte_t G[], Byte_t B[], Byte_t ScLine[], void(*get_scline)(int, int, Byte_t *), void(*pb)(Byte_t))
int XRotDrawAlignedImageString(Display *, XFontStruct *, float, Drawable, GC, int, int, char *, int)
A front end to XRotPaintAlignedString: -does alignment, paints background.
static ULong_t gMouseMask
static Int_t gCurrentFontNumber
int XRotDrawAlignedString(Display *, XFontStruct *, float, Drawable, GC, int, int, char *, int)
A front end to XRotPaintAlignedString: -does alignment, no background.
int XRotDrawImageString(Display *, XFontStruct *, float, Drawable, GC, int, int, char *)
A front end to XRotPaintAlignedString: -no alignment, paints background.
static int gMarkerCapStyle
static struct @55 gFont[kMAXFONT]
static XFontStruct * gTextFont
void XRotSetBoundingBoxPad(int)
Set the padding used when calculating bounding boxes.
static Int_t DummyX11ErrorHandler(Display *, XErrorEvent *)
Dummy error handler for X11. Used by FindUsableVisual().
int GIFinfo(Byte_t *gifArr, int *Width, int *Height, int *Ncols)
Int_t gDebug
Global variable setting the debug level. Set to 0 to disable, increase it in steps of 1 to increase t...
void Printf(const char *fmt,...)
Formats a string in a circular formatting buffer and prints the string.
R__EXTERN TStyle * gStyle
const_iterator begin() const
const_iterator end() const
Fill Area Attributes class.
virtual Color_t GetFillColor() const
Return the fill area color.
virtual Style_t GetFillStyle() const
Return the fill area style.
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
virtual void SetFillStyle(Style_t fstyle)
Set the fill area style.
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
virtual Width_t GetLineWidth() const
Return the line width.
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
virtual Style_t GetLineStyle() const
Return the line style.
virtual void SetMarkerColor(Color_t mcolor=1)
Set the marker color.
static Width_t GetMarkerLineWidth(Style_t style)
Internal helper function that returns the line width of the given marker style (0 = filled marker)
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
virtual void SetMarkerSize(Size_t msize=1)
Set the marker size.
static Style_t GetMarkerStyleBase(Style_t style)
Internal helper function that returns the corresponding marker style with line width 1 for the given ...
virtual void SetTextAlign(Short_t align=11)
Set the text alignment.
Float_t fTextAngle
Text angle.
virtual void SetTextColor(Color_t tcolor=1)
Set the text color.
virtual void SetTextFont(Font_t tfont=62)
Set the text font.
virtual void SetTextSize(Float_t tsize=1)
Set the text size.
The color creation and management class.
static Int_t GetColor(const char *hexcolor)
Static method returning color number for color specified by hex color string of form: "#rrggbb",...
virtual Int_t GetValue(const char *name, Int_t dflt) const
Returns the integer value for a resource.
Bool_t Next(ULong64_t &hash, Long64_t &key, Long64_t &value)
Get next entry from TExMap. Returns kFALSE at end of map.
This class stores a (key,value) pair using an external hash.
void Add(ULong64_t hash, Long64_t key, Long64_t value)
Add an (key,value) pair to the table. The key should be unique.
Long64_t GetValue(ULong64_t hash, Long64_t key)
Return the value belonging to specified key and hash value.
This class is the basic interface to the X11 (Xlib) graphics system.
void DrawFillArea(Int_t n, TPoint *xy) override
Fill area described by polygon.
void * fDisplay
Pointer to display.
void DrawBoxW(WinContext_t wctxt, Int_t x1, Int_t y1, Int_t x2, Int_t y2, EBoxMode mode) override
Draw a box on specified window.
void SetLineColor(Color_t cindex) override
Set color index for lines.
void GetGeometry(Int_t wid, Int_t &x, Int_t &y, UInt_t &w, UInt_t &h) override
Return position and size of window wid.
Colormap fColormap
Default colormap, 0 if b/w.
std::unordered_map< Int_t, std::unique_ptr< XWindow_t > > fWindows
Window_t GetWindowID(Int_t wid) override
Return the X11 window identifier.
Int_t WriteGIF(char *name) override
Writes the current window into GIF file.
void SetFillColor(Color_t cindex) override
Set color index for fill areas.
void ResizeWindow(Int_t wid) override
Resize the current window if necessary.
void SetTextAlign(Short_t talign=11) override
Set text alignment.
void RescaleWindow(Int_t wid, UInt_t w, UInt_t h) override
Rescale the window wid.
void SetCursor(Int_t win, ECursor cursor) override
Set the cursor.
Int_t fScreenNumber
Screen number.
void Sync(Int_t mode) override
Set synchronisation on or off.
Pixmap_t CreatePixmapFromData(unsigned char *bits, UInt_t width, UInt_t height) override
create pixmap from RGB data.
WinContext_t GetWindowContext(Int_t wid) override
Returns window context for specified window id Window context is valid until window not closed or des...
unsigned char * GetColorBits(Drawable_t wid, Int_t x=0, Int_t y=0, UInt_t w=0, UInt_t h=0) override
Returns an array of pixels created from a part of drawable (defined by x, y, w, h) in format: b1,...
ULong_t fWhitePixel
Value of white pixel in colormap.
Cursor fCursors[kNumCursors]
List of cursors.
Bool_t AllocColor(Colormap cmap, RXColor *color)
Allocate color in colormap.
void DrawText(Int_t x, Int_t y, Float_t angle, Float_t mgn, const char *text, ETextMode mode) override
Draw a text string using current font.
void QueryColors(Colormap cmap, RXColor *colors, Int_t ncolors)
Returns the current RGB value for the pixel in the XColor structure.
Int_t fBlueShift
Bits to left shift blue.
void SetMarkerColor(Color_t cindex) override
Set color index for markers.
void DrawFillAreaW(WinContext_t wctxt, Int_t n, TPoint *xy) override
Fill area described by polygon on specified window.
void SetAttText(WinContext_t wctxt, const TAttText &att) override
Set text attributes for specified window.
void Warp(Int_t ix, Int_t iy, Window_t id=0) override
Set pointer position.
void * GetGC(Int_t which) const
Return desired Graphics Context ("which" maps directly on gGCList[]).
void SetOpacityW(WinContext_t wctxt, Int_t percent) override
Set opacity of a specified window.
void SetClipOFF(Int_t wid) override
Turn off the clipping for the window wid.
Int_t ResizePixmap(Int_t wid, UInt_t w, UInt_t h) override
Resize a pixmap.
void SetDoubleBufferOFF() override
Turn double buffer mode off.
void DrawTextW(WinContext_t wctxt, Int_t x, Int_t y, Float_t angle, Float_t mgn, const char *text, ETextMode mode) override
Draw a text string using current font on specified window.
void SetTextColor(Color_t cindex) override
Set color index for text.
void UpdateWindow(Int_t mode) override
Update display.
Bool_t fHasXft
True when XftFonts are used.
Int_t SupportsExtension(const char *ext) const override
Returns 1 if window system server supports extension given by the argument, returns 0 in case extensi...
Int_t InitWindow(ULong_t window) override
Open window and return window number.
Style_t GetLineStyle() const override
Return current line style.
~TGX11() override
Destructor.
void MoveWindow(Int_t wid, Int_t x, Int_t y) override
Move the window wid.
Int_t SetTextFont(char *fontname, ETextSetMode mode) override
Set text font to specified name.
void SetFillStyle(Style_t style) override
Set fill area style.
void CopyPixmapW(WinContext_t wctxt, Int_t wid, Int_t xpos, Int_t ypos) override
Copy the pixmap wid at the position xpos, ypos in the specified window.
Float_t fTextMagnitude
Text Magnitude.
void SetCharacterUp(Float_t chupx, Float_t chupy) override
Set character up vector.
Drawable fRootWin
Root window used as parent of all windows.
void WritePixmap(Int_t wid, UInt_t w, UInt_t h, char *pxname) override
Write the pixmap wid in the bitmap file pxname.
void DrawPolyLineW(WinContext_t wctxt, Int_t n, TPoint *xy) override
Draw a line through all points on specified window.
void SetInput(Int_t inp)
Set input on or off.
void GetPlanes(Int_t &nplanes) override
Get maximum number of planes.
void ClearWindow() override
Clear current window.
void * fXEvent
Current native (X11) event.
Int_t fGreenShift
Bits to left shift green.
void DrawBox(Int_t x1, Int_t y1, Int_t x2, Int_t y2, EBoxMode mode) override
Draw a box.
void CopyPixmap(Int_t wid, Int_t xpos, Int_t ypos) override
Copy the pixmap wid at the position xpos, ypos in the current window.
void SetOpacity(Int_t percent) override
Set opacity of a selected window.
Style_t GetFillStyle() const override
Return current fill style.
void DrawPolyMarkerW(WinContext_t wctxt, Int_t n, TPoint *xy) override
Draw n markers with the current attributes at position x, y on specified window.
Int_t OpenPixmap(UInt_t w, UInt_t h) override
Open a new pixmap.
XColor_t & GetColor(Int_t cid)
Return reference to internal color structure associated to color index cid.
void * GetGCW(WinContext_t wctxt, Int_t which) const
Return X11 Graphics Context for specified window context.
void SetAttMarker(WinContext_t wctxt, const TAttMarker &att) override
Set marker attributes for specified window.
Int_t fBlueDiv
Blue value divider.
void DrawPolyMarker(Int_t n, TPoint *xy) override
Draw n markers with the current attributes at position x, y.
void UpdateWindowW(WinContext_t wctxt, Int_t mode) override
Update display for specified window.
void CloseWindow() override
Delete current window.
void SetMarkerSize(Float_t markersize) override
Set marker size index.
void SetAttLine(WinContext_t wctxt, const TAttLine &att) override
Set line attributes for specified window.
Drawable fVisRootWin
Root window with fVisual to be used to create GC's and XImages.
void SetDoubleBufferON() override
Turn double buffer mode on.
void SetColor(XWindow_t *ctxt, void *gc, Int_t ci)
Set the foreground color in GC.
TExMap * fColors
Hash list of colors.
void DrawLinesSegments(Int_t n, TPoint *xy) override
Draws N segments between provided points.
void SetAttFill(WinContext_t wctxt, const TAttFill &att) override
Set fill attributes for specified window.
void SetDrawModeW(WinContext_t wctxt, EDrawMode mode) override
Set window draw mode.
Int_t fRedDiv
Red value divider, -1 if no TrueColor visual.
Int_t fDepth
Number of color planes.
Color_t GetFillColor() const override
Return current fill color.
Bool_t Init(void *display) override
Initialize X11 system. Returns kFALSE in case of failure.
void SetLineType(Int_t n, Int_t *dash) override
Set line type.
Window_t GetWindow(WinContext_t wctxt) const
Return X11 window for specified window context.
ULong_t fBlackPixel
Value of black pixel in colormap.
void SetTextSize(Float_t textsize) override
Set current text size.
Float_t fCharacterUpX
Character Up vector along X.
void DrawCellArray(Int_t x1, Int_t y1, Int_t x2, Int_t y2, Int_t nx, Int_t ny, Int_t *ic) override
Draw a cell array.
void SetLineStyle(Style_t linestyle) override
Set line style.
Int_t fGreenDiv
Green value divider.
EDrawMode GetDrawModeW(WinContext_t wctxt) override
Returns window draw mode.
void QueryPointer(Int_t &ix, Int_t &iy) override
Query pointer position.
ULong_t GetPixel(Color_t cindex) override
Return pixel value associated to specified ROOT color number.
TGX11()
Default constructor.
void GetTextExtent(UInt_t &w, UInt_t &h, char *mess) override
Return the size of a character string.
void ClosePixmap() override
Delete current pixmap.
Int_t fRedShift
Bits to left shift red, -1 if no TrueColor visual.
Int_t RequestLocator(Int_t mode, Int_t ctyp, Int_t &x, Int_t &y) override
Request Locator position.
Int_t OpenDisplay(void *display)
Open the display. Return -1 if the opening fails, 0 when ok.
void DrawPolyLine(Int_t n, TPoint *xy) override
Draw a line through all points.
void SetClipRegion(Int_t wid, Int_t x, Int_t y, UInt_t w, UInt_t h) override
Set clipping region for the window wid.
Int_t AddPixmap(ULong_t pixid, UInt_t w, UInt_t h) override
Register pixmap created by gVirtualGL.
void SetRGB(Int_t cindex, Float_t r, Float_t g, Float_t b) override
Set color intensities for given color index.
void FindUsableVisual(RXVisualInfo *vlist, Int_t nitems)
Check if visual is usable, if so set fVisual, fDepth, fColormap, fBlackPixel and fWhitePixel.
EAlign GetTextAlignW(WinContext_t wctxt) const
Return text align value for specified window context.
void DrawLineW(WinContext_t wctxt, Int_t x1, Int_t y1, Int_t x2, Int_t y2) override
Draw a line on specified window.
void GetCharacterUp(Float_t &chupx, Float_t &chupy) override
Return character up vector.
void SetDoubleBuffer(Int_t wid, Int_t mode) override
Set the double buffer on/off on window wid.
void DrawLinesSegmentsW(WinContext_t wctxt, Int_t n, TPoint *xy) override
Draws N segments between provided points on specified windows.
void SetMarkerStyle(Style_t markerstyle) override
Set marker style.
void GetRGB(Int_t index, Float_t &r, Float_t &g, Float_t &b) override
Get rgb values for color "index".
void ImgPickPalette(RXImage *image, Int_t &ncol, Int_t *&R, Int_t *&G, Int_t *&B)
Returns in R G B the ncol colors of the palette used by the image.
void ClearWindowW(WinContext_t wctxt) override
Clear specified window.
RVisual * fVisual
Pointer to visual used by all windows.
Width_t GetLineWidth() const override
Return current line width.
void DrawLine(Int_t x1, Int_t y1, Int_t x2, Int_t y2) override
Draw a line.
Window_t GetCurrentWindow() const override
Return current window pointer.
void RemoveWindow(ULong_t qwid) override
Remove a window created by Qt (like CloseWindow()).
Int_t RequestString(Int_t x, Int_t y, char *text) override
Request a string.
void SetLineWidth(Width_t width) override
Set line width.
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.
Int_t GetDoubleBuffer(Int_t wid) override
Query the double buffer value for the window wid.
void FindBestVisual()
Find best visual, i.e.
void SetDrawMode(EDrawMode mode) override
Set the drawing mode.
const char * DisplayName(const char *dpyName=nullptr) override
Return hostname on which the display is opened.
Pixmap_t ReadGIF(Int_t x0, Int_t y0, const char *file, Window_t id=0) override
If id is NULL - loads the specified gif file at position [x0,y0] in the current window.
Int_t AddWindow(ULong_t qwid, UInt_t w, UInt_t h) override
Register a window created by Qt as a ROOT window (like InitWindow()).
Int_t AddWindowHandle()
Add new window handle Only for private usage.
Float_t fCharacterUpY
Character Up vector along Y.
Bool_t fHasTTFonts
True when TrueType fonts are used.
void SelectWindow(Int_t wid) override
Select window to which subsequent output is directed.
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 Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message.
const char * GetLineStyleString(Int_t i=1) const
Return line style string (used by PostScript).
Semi-Abstract base class defining a generic interface to the underlying, low level,...
Double_t ACos(Double_t)
Returns the principal value of the arc cosine of x, expressed in radians.
Short_t Max(Short_t a, Short_t b)
Returns the largest of a and b.
Double_t Floor(Double_t x)
Rounds x downward, returning the largest integral value that is not greater than x.
Double_t Sqrt(Double_t x)
Returns the square root of x.
Short_t Min(Short_t a, Short_t b)
Returns the smallest of a and b.
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.
Description of a X11 color.
Bool_t fDefined
true if pixel value is defined
UShort_t fRed
red value in range [0,kBIGGEST_RGB_VALUE]
UShort_t fGreen
green value
ULong_t fPixel
color pixel value
Description of a X11 window.
Int_t fOpen
1 if the window is open, 0 if not
TAttText fAttText
current text attributes
EAlign textAlign
selected text align
Int_t fClip
1 if the clipping is on
Drawable fWindow
X11 window.
Int_t lineWidth
current line width
Int_t dashOffset
current dash offset
Int_t fillFasi
fasi parameter for fill pattern
Drawable fDrawing
drawing area, equal to window or buffer
Int_t markerLineWidth
line width used for marker
Int_t fDoubleBuffer
1 if the double buffer is on, 0 if not
std::vector< char > dashList
X11 array for dashes.
XFontStruct * textFont
selected text font
UInt_t fHeight
height of the window
Int_t fIsPixmap
1 if pixmap, 0 if not
Int_t fillHollow
Flag if fill style is hollow.
std::vector< XPoint > markerShape
marker shape points
UInt_t fWidth
width of the window
TVirtualX::EDrawMode drawMode
current draw mode
UInt_t fHclip
height of the clipping rectangle
Int_t dashLength
total length of dashes
Bool_t fShared
notify when window is shared
Drawable fBuffer
pixmap used for double buffer
GdkGC * fGClist[kMAXGC]
array of GC objects for concrete window
Int_t markerSize
size of simple markers
GdkLineStyle lineStyle
current line style
TAttLine fAttLine
current line attributes
std::vector< ULong_t > fNewColors
extra image colors created for transparency (after processing)
Int_t markerType
4 differen kinds of marker
TAttMarker fAttMarker
current marker attribute
GdkPixmap * fillPattern
current fill pattern
Int_t fXclip
x coordinate of the clipping rectangle
TAttFill fAttFill
current fill attributes
UInt_t fWclip
width of the clipping rectangle
Int_t fYclip
y coordinate of the clipping rectangle
int GIFdecode(byte *GIFarr, byte *PIXarr, int *Width, int *Height, int *Ncols, byte *R, byte *G, byte *B)
int GIFinfo(byte *GIFarr, int *Width, int *Height, int *Ncols)
long GIFencode(int Width, int Height, int Ncol, R, G, B, ScLine, void *get_scline, pb)