42#include <ApplicationServices/ApplicationServices.h>
43#include <OpenGL/OpenGL.h>
44#include <Cocoa/Cocoa.h>
84#pragma mark - Display configuration management.
94 " is either null or has a wrong type");
96 gCocoa->ReconfigureDisplay();
100#pragma mark - Aux. functions called from GUI-rendering part.
105 assert(ctx != 0 &&
"SetStrokeForegroundColorFromX11Context, parameter 'ctx' is null");
111 ::Warning(
"SetStrokeForegroundColorFromX11Context",
112 "x11 context does not have line color information");
121 assert(ctx != 0 &&
"SetStrokeDashFromX11Context, ctx parameter is null");
127 "SetStrokeDashFromX11Context, x11 context has bad dash length > sizeof(fDashes)");
140 ::Warning(
"SetStrokeDoubleDashFromX11Context",
"Not implemented yet, kick tpochep!");
148 assert(ctx != 0 &&
"SetStrokeParametersFromX11Context, parameter 'ctx' is null");
166 ::Warning(
"SetStrokeParametersFromX11Context",
"line style bit is set,"
167 " but line style is unknown");
179 assert(ctx != 0 &&
"SetFilledAreaColorFromX11Context, parameter 'ctx' is null");
185 ::Warning(
"SetFilledAreaColorFromX11Context",
"no fill color found in x11 context");
190struct PatternContext {
202 PatternContext(
const PatternContext &) =
delete;
203 PatternContext(PatternContext &&) =
delete;
204 PatternContext &
operator = (
const PatternContext &) =
delete;
205 PatternContext &
operator = (PatternContext &&) =
delete;
209 if (
image != fImage) {
216 Int_t fFillStyle = 0;
264 assert(ctx != 0 &&
"DrawTile, ctx parameter is null");
274 assert(0 &&
"DrawTile, pattern is neither a QuartzImage, nor a QuartzPixmap");
284 assert(
info != 0 &&
"DrawPattern, parameter 'info' is null");
285 assert(ctx != 0 &&
"DrawPattern, parameter 'ctx' is null");
299 "DrawPattern, stipple must be a QuartzImage object");
301 assert(
image.fIsStippleMask ==
YES &&
"DrawPattern, image is not a stipple mask");
308 "DrawPattern, fill style is FillOpaqueStippled, but background color is not set in a context");
329 delete static_cast<PatternContext *
>(
info);
339 assert(ctx != 0 &&
"SetFillPattern, parameter 'ctx' is null");
353 const CGFloat alpha = 1.;
361 assert(
child !=
nil &&
"ParentRendersToChild, parameter 'child' is nil");
365class ViewFixer
final {
384 ViewFixer(
const ViewFixer &
rhs) =
delete;
385 ViewFixer &
operator = (
const ViewFixer &) =
delete;
394 if (
c == 9 || (
c >= 32 &&
c < 127))
432 : fSelectedDrawable(0),
436 fForegroundProcess(
false),
438 fDisplayShapeChanged(
true)
441 "TGCocoa, gSystem is eihter null or has a wrong type");
444 if (!
system->CocoaInitialized())
445 system->InitializeCocoa();
458 fSelectedDrawable(0),
462 fForegroundProcess(
false),
464 fDisplayShapeChanged(
true)
467 "TGCocoa, gSystem is eihter null or has a wrong type");
470 if (!
system->CocoaInitialized())
471 system->InitializeCocoa();
585 }
else if (
mode > 0) {
608 CGFloat
xMin = frame.origin.x,
xMax =
xMin + frame.size.width;
609 CGFloat
yMin = frame.origin.y,
yMax =
yMin + frame.size.height;
611 for (NSUInteger i = 1,
e =
screens.count; i <
e; ++i) {
613 xMin = std::min(
xMin, frame.origin.x);
614 xMax = std::max(
xMax, frame.origin.x + frame.size.width);
615 yMin = std::min(
yMin, frame.origin.y);
616 yMax = std::max(
yMax, frame.origin.y + frame.size.height);
630#pragma mark - Window management part.
636 return fPimpl->GetRootWindowID();
661 return CreateWindow(
parentID, 0, 0,
attr.fWidth,
attr.fHeight, 0,
attr.fDepth,
attr.fClass, 0, 0, 0);
685 "ClearWindow, fSelectedDrawable is invalid");
688 if (drawable.fIsPixmap) {
730 h = drawable.fHeight;
732 if (!drawable.fIsPixmap) {
737 NSView<X11Window> *
const view = window.fContentView.fParentView ? window.fContentView.fParentView : window.fContentView;
780 "ResizeWindow, parameter 'windowID' is a root window's id");
785 if (window.fBackBuffer) {
805 "UpdateWindow, fSelectedDrawable is not a valid window id");
888 "CreateWindow, parent view must be QuartzView");
931 fPimpl->fX11EventTranslator.CheckUnmappedView(
wid);
934 "DestroyWindow, can not be called for QuartzPixmap or QuartzImage object");
937 if (
fPimpl->fX11CommandBuffer.BufferSize())
938 fPimpl->fX11CommandBuffer.RemoveOperationsForDrawable(
wid);
941 if ((
needFocusChange = window == window.fQuartzWindow && window.fQuartzWindow.fHasFocus))
942 window.fHasFocus =
NO;
946 fPimpl->fX11EventTranslator.GenerateDestroyNotify(
wid);
978 "DestroySubwindows, can not be called for QuartzPixmap or QuartzImage object");
1015 assert(!
fPimpl->IsRootWindow(
wid) &&
"ChangeWindowAttributes, called for root window");
1016 assert(
attr != 0 &&
"ChangeWindowAttributes, parameter 'attr' is null");
1047 assert(!
fPimpl->IsRootWindow(
wid) &&
"ReparentChild, can not re-parent root window");
1052 if (
fPimpl->IsRootWindow(pid)) {
1056 view.fParentView =
nil;
1058 NSRect frame = view.frame;
1059 frame.origin = NSPoint();
1061 NSUInteger
styleMask = kClosableWindowMask | kMiniaturizableWindowMask | kResizableWindowMask;
1062 if (!view.fOverrideRedirect)
1081 assert(
newParent.fIsPixmap ==
NO &&
"ReparentChild, pixmap can not be a new parent");
1094 if (
fPimpl->IsRootWindow(pid))
1118 assert(!
fPimpl->IsRootWindow(
wid) &&
"ReparentWindow, can not re-parent root window");
1121 if (view.fParentView)
1134 assert(!
fPimpl->IsRootWindow(
wid) &&
"MapWindow, called for root window");
1154 assert(!
fPimpl->IsRootWindow(
wid) &&
"MapSubwindows, called for 'root' window");
1169 assert(!
fPimpl->IsRootWindow(
wid) &&
"MapRaised, called for root window");
1190 assert(!
fPimpl->IsRootWindow(
wid) &&
"UnmapWindow, called for root window");
1195 fPimpl->fX11EventTranslator.CheckUnmappedView(
wid);
1200 if (
win ==
win.fQuartzWindow &&
win.fQuartzWindow.fHasFocus)
1222 assert(!
fPimpl->IsRootWindow(
wid) &&
"RaiseWindow, called for root window");
1224 if (!
fPimpl->GetWindow(
wid).fParentView)
1239 assert(!
fPimpl->IsRootWindow(
wid) &&
"LowerWindow, called for root window");
1241 if (!
fPimpl->GetWindow(
wid).fParentView)
1260 assert(!
fPimpl->IsRootWindow(
wid) &&
"MoveWindow, called for root window");
1279 assert(!
fPimpl->IsRootWindow(
wid) &&
"MoveResizeWindow, called for 'root' window");
1291 assert(!
fPimpl->IsRootWindow(
wid) &&
"ResizeWindow, called for 'root' window");
1296 const UInt_t siMax = std::numeric_limits<Int_t>::max();
1314 assert(!
fPimpl->IsRootWindow(
wid) &&
"IconifyWindow, can not iconify the root window");
1315 assert(
fPimpl->GetWindow(
wid).fIsPixmap ==
NO &&
"IconifyWindow, invalid window id");
1318 assert(
win.fQuartzWindow ==
win &&
"IconifyWindow, can be called only for a top level window");
1320 fPimpl->fX11EventTranslator.CheckUnmappedView(
wid);
1323 if (
fPimpl->fX11CommandBuffer.BufferSize())
1324 fPimpl->fX11CommandBuffer.RemoveOperationsForDrawable(
wid);
1326 if (window.fQuartzWindow.fHasFocus) {
1328 window.fQuartzWindow.fHasFocus =
NO;
1432 if (!window.fIsPixmap) {
1452 assert(!
fPimpl->IsRootWindow(
wid) &&
"SetWindowBackground, can not set color for root window");
1454 fPimpl->GetWindow(
wid).fBackgroundPixel = color;
1468 "SetWindowBackgroundPixmap, can not set background for a root window");
1470 "SetWindowBackgroundPixmap, invalid window id");
1474 window.fBackgroundPixmap =
nil;
1479 "SetWindowBackgroundPixmap, parameter 'pixmapID' is not a valid pixmap id");
1481 "SetWindowBackgroundPixmap, bad drawable");
1500 Error(
"SetWindowBackgroundPixmap",
"QuartzImage initialization failed");
1513 return view.fParentView ? view.fParentView.fID :
fPimpl->GetRootWindowID();
1559 "ShapeCombineMask, windowID parameter is a 'root' window");
1561 "ShapeCombineMask, windowID parameter is a bad window id");
1563 "ShapeCombineMask, pixmapID parameter must point to QuartzImage object");
1569 assert(
srcImage.fIsStippleMask ==
YES &&
"ShapeCombineMask, source image is not a stipple mask");
1576 qw.fShapeCombineMask =
image.Get();
1582#pragma mark - "Window manager hints" set of functions.
1590 assert(!
fPimpl->IsRootWindow(
wid) &&
"SetMWMHints, called for 'root' window");
1597 newMask |= kClosableWindowMask;
1601 newMask |= kMiniaturizableWindowMask | kResizableWindowMask;
1604 newMask |= kMiniaturizableWindowMask;
1606 newMask |= kResizableWindowMask;
1612 if (!
qw.fMainWindow) {
1617 if (!
qw.fMainWindow) {
1641 assert(!
fPimpl->IsRootWindow(
wid) &&
"SetWMSizeHints, called for root window");
1643 const NSUInteger
styleMask = kTitledWindowMask | kClosableWindowMask | kMiniaturizableWindowMask | kResizableWindowMask;
1670 assert(
wid >
fPimpl->GetRootWindowID() &&
"SetWMTransientHint, wid parameter is not a valid window id");
1685 Error(
"SetWMTransientHint",
"window is already transient for other window");
1691 Warning(
"SetWMTransientHint",
"transient and main windows are the same window");
1694#pragma mark - GUI-rendering part.
1700 assert(!
fPimpl->IsRootWindow(
wid) &&
"DrawLineAux, called for root window");
1704 assert(ctx != 0 &&
"DrawLineAux, context is null");
1719 if (!drawable.fIsPixmap)
1748 assert(!
fPimpl->IsRootWindow(
wid) &&
"DrawLine, called for root window");
1754 if (!drawable.fIsPixmap) {
1776 assert(!
fPimpl->IsRootWindow(
wid) &&
"DrawSegmentsAux, called for root window");
1777 assert(
segments != 0 &&
"DrawSegmentsAux, segments parameter is null");
1793 assert(!
fPimpl->IsRootWindow(
wid) &&
"DrawSegments, called for root window");
1795 assert(
segments != 0 &&
"DrawSegments, parameter 'segments' is null");
1801 if (!drawable.fIsPixmap) {
1823 assert(!
fPimpl->IsRootWindow(
wid) &&
"DrawRectangleAux, called for root window");
1827 if (!drawable.fIsPixmap) {
1840 assert(ctx &&
"DrawRectangleAux, context is null");
1862 assert(!
fPimpl->IsRootWindow(
wid) &&
"DrawRectangle, called for root window");
1869 if (!drawable.fIsPixmap) {
1898 assert(!
fPimpl->IsRootWindow(
wid) &&
"FillRectangleAux, called for root window");
1904 if (drawable.fIsPixmap) {
1911 if (!drawable.fIsPixmap) {
1927 "FillRectangleAux, fill_style is FillStippled/FillOpaqueStippled,"
1928 " but no stipple is set in a context");
1937 "FillRectangleAux, fill_style is FillTiled, but not tile is set in a context");
1963 assert(!
fPimpl->IsRootWindow(
wid) &&
"FillRectangle, called for root window");
1969 if (!drawable.fIsPixmap) {
1992 assert(!
fPimpl->IsRootWindow(
wid) &&
"FillPolygonAux, called for root window");
1993 assert(
polygon != 0 &&
"FillPolygonAux, parameter 'polygon' is null");
1994 assert(
nPoints > 0 &&
"FillPolygonAux, number of points must be positive");
2001 if (!drawable.fIsPixmap) {
2017 "FillRectangleAux, fill style is FillStippled/FillOpaqueStippled,"
2018 " but no stipple is set in a context");
2027 "FillRectangleAux, fill_style is FillTiled, but not tile is set in a context");
2041 if (!drawable.fIsPixmap) {
2075 assert(
polygon != 0 &&
"FillPolygon, parameter 'polygon' is null");
2076 assert(
nPoints > 0 &&
"FillPolygon, number of points must be positive");
2082 if (!drawable.fIsPixmap) {
2108 assert(!
fPimpl->IsRootWindow(
src) &&
"CopyAreaAux, src parameter is root window");
2109 assert(!
fPimpl->IsRootWindow(
dst) &&
"CopyAreaAux, dst parameter is root window");
2124 "CopyArea, mask is not a pixmap");
2144 assert(!
fPimpl->IsRootWindow(
src) &&
"CopyArea, src parameter is root window");
2145 assert(!
fPimpl->IsRootWindow(
dst) &&
"CopyArea, dst parameter is root window");
2151 if (!drawable.fIsPixmap) {
2162 if (
fPimpl->GetDrawable(
src).fIsPixmap) {
2178 assert(!
fPimpl->IsRootWindow(
wid) &&
"DrawStringAux, called for root window");
2182 assert(ctx != 0 &&
"DrawStringAux, context is null");
2189 if (!drawable.fIsPixmap) {
2202 CGFloat
textColor[4] = {0., 0., 0., 1.};
2225 assert(!
fPimpl->IsRootWindow(
wid) &&
"DrawString, called for root window");
2232 if (!drawable.fIsPixmap) {
2257 assert(view.
fContext != 0 &&
"ClearAreaAux, view.fContext is null");
2267 CGFloat
rgb[3] = {};
2301 assert(!
fPimpl->IsRootWindow(
wid) &&
"ClearArea, called for root window");
2328#pragma mark - Pixmap management.
2345 Error(
"OpenPixmap",
"QuartzPixmap initialization failed");
2353 assert(!
fPimpl->IsRootWindow(
wid) &&
"ResizePixmap, called for root window");
2356 assert(drawable.fIsPixmap ==
YES &&
"ResizePixmap, invalid drawable");
2372 "SelectPixmap, parameter 'pixmapID' is not a valid id");
2381 "CopyPixmap, parameter 'pixmapID' is not a valid id");
2383 "CopyPixmap, fSelectedDrawable is not a valid window id");
2387 "CopyPixmap, source is not a pixmap");
2393 if (drawable.fIsPixmap) {
2397 if (window.fBackBuffer) {
2400 Warning(
"CopyPixmap",
"Operation skipped, since destination"
2401 " window is not double buffered");
2423#pragma mark - Different functions to create pixmap from different data sources. Used by GUI.
2424#pragma mark - These functions implement TVirtualX interface, some of them dupilcate others.
2440 assert(
bitmap != 0 &&
"CreatePixmap, parameter 'bitmap' is null");
2441 assert(
width > 0 &&
"CreatePixmap, parameter 'width' is 0");
2442 assert(
height > 0 &&
"CreatePixmap, parameter 'height' is 0");
2458 Error(
"CreatePixmap",
"QuartzImage initialization failed");
2463 return image.Get().fID;
2470 assert(bits != 0 &&
"CreatePixmapFromData, data parameter is null");
2471 assert(
width != 0 &&
"CreatePixmapFromData, width parameter is 0");
2472 assert(
height != 0 &&
"CreatePixmapFromData, height parameter is 0");
2481 std::swap(
p[0],
p[2]);
2489 Error(
"CreatePixmapFromData",
"QuartzImage initialziation failed");
2494 return image.Get().fID;
2501 assert(std::numeric_limits<unsigned char>::digits == 8 &&
"CreateBitmap, ASImage requires octets");
2512 for (
unsigned i = 0,
j = 0,
e =
width / 8 *
height; i <
e; ++i) {
2526 Error(
"CreateBitmap",
"QuartzImage initialization failed");
2531 return image.Get().fID;
2562 Warning(
"GetColorBits",
"Called for root window");
2564 assert(
x >= 0 &&
"GetColorBits, parameter 'x' is negative");
2565 assert(
y >= 0 &&
"GetColorBits, parameter 'y' is negative");
2566 assert(
w != 0 &&
"GetColorBits, parameter 'w' is 0");
2567 assert(
h != 0 &&
"GetColorBits, parameter 'h' is 0");
2576#pragma mark - XImage emulation.
2592 assert(
wid >
fPimpl->GetRootWindowID() &&
"GetImageSize, parameter 'wid' is invalid");
2595 width = drawable.fWidth;
2596 height = drawable.fHeight;
2610 "PutPixel, parameter 'imageID' is a bad pixmap id");
2611 assert(
x >= 0 &&
"PutPixel, parameter 'x' is negative");
2612 assert(
y >= 0 &&
"PutPixel, parameter 'y' is negative");
2616 unsigned char rgb[3] = {};
2637 "DeleteImage, imageID parameter is not a valid image id");
2641#pragma mark - Mouse related code.
2659 assert(!
fPimpl->IsRootWindow(
wid) &&
"GrabButton, called for 'root' window");
2670 widget.fPassiveGrabOwnerEvents =
NO;
2671 widget.fPassiveGrabButton = -1;
2672 widget.fPassiveGrabEventMask = 0;
2673 widget.fPassiveGrabKeyModifiers = 0;
2687 assert(!
fPimpl->IsRootWindow(
wid) &&
"GrabPointer, called for 'root' window");
2694 fPimpl->fX11EventTranslator.CancelPointerGrab();
2745 assert(!
fPimpl->IsRootWindow(
wid) &&
"GrabKey, called for root window");
2772 return fPimpl->fX11EventTranslator.GetInputFocus();
2779 assert(!
fPimpl->IsRootWindow(
wid) &&
"SetInputFocus, called for root window");
2782 fPimpl->fX11EventTranslator.SetInputFocus(
nil);
2784 fPimpl->fX11EventTranslator.SetInputFocus(
fPimpl->GetWindow(
wid).fContentView);
2800 assert(buf != 0 &&
"LookupString, parameter 'buf' is null");
2801 assert(
length >= 2 &&
"LookupString, parameter 'length' - not enough memory to return null-terminated ASCII string");
2806#pragma mark - Font management.
2818 if (!
xlfd.fFamilyName.length() ||
xlfd.fFamilyName ==
"*")
2819 xlfd.fFamilyName =
"Courier";
2820 if (!
xlfd.fPixelSize)
2821 xlfd.fPixelSize = 11;
2837 fPimpl->fFontManager.UnloadFont(
fs);
2852 return fPimpl->fFontManager.GetTextWidth(font, s,
len);
2905#pragma mark - Color management.
2919 const unsigned red = unsigned(
double(color.
fRed) / 0xFFFF * 0xFF);
2920 const unsigned green = unsigned(
double(color.
fGreen) / 0xFFFF * 0xFF);
2921 const unsigned blue = unsigned(
double(color.
fBlue) / 0xFFFF * 0xFF);
2930 color.
fRed = (color.
fPixel >> 16 & 0xFF) * 0xFFFF / 0xFF;
2931 color.
fGreen = (color.
fPixel >> 8 & 0xFF) * 0xFFFF / 0xFF;
2932 color.
fBlue = (color.
fPixel & 0xFF) * 0xFFFF / 0xFF;
2984#pragma mark - Graphical context management.
3016 assert(
gval != 0 &&
"ChangeGC, gval parameter is null");
3071 for (
unsigned i = 0; i <
nDashes; ++i)
3104#pragma mark - Cursor management.
3126 assert(!
fPimpl->IsRootWindow(
wid) &&
"SetCursor, called for root window");
3129 view.fCurrentCursor =
cursor;
3194#pragma mark - OpenGL management.
3212 typedef std::vector<component_type>::size_type size_type;
3215 std::vector<NSOpenGLPixelFormatAttribute>
attribs;
3248 "CreateOpenGLWindow, parent view must be QuartzView");
3272 Error(
"CreateOpenGLWindow",
"QuartzWindow allocation/initialization"
3273 " failed for a top-level GL widget");
3288 "CreateOpenGLContext, parameter 'windowID' is a root window");
3290 "CreateOpenGLContext, view is not an OpenGL view");
3314 assert(
ctxID > 0 &&
"MakeOpenGLContextCurrent, invalid context id");
3318 Error(
"MakeOpenGLContextCurrent",
"No OpenGL context found for id %d",
int(
ctxID));
3329 if (
glView.fUpdateContext) {
3360 const NSUInteger
styleMask = kTitledWindowMask | kClosableWindowMask |
3361 kMiniaturizableWindowMask | kResizableWindowMask;
3391 Error(
"GetCurrentOpenGLContext",
"The current OpenGL context is null");
3397 Error(
"GetCurrentOpenGLContext",
"The current OpenGL context was"
3398 " not created/registered by TGCocoa");
3406 assert(
ctxID > 0 &&
"FlushOpenGLBuffer, invalid context id");
3438#pragma mark - Off-screen rendering for TPad/TCanvas.
3447 Warning(
"SetDoubleBuffer",
"called with wid == 999");
3468 "SetDoubleBufferON, called, but no correct window was selected before");
3472 if (!window)
return;
3475 "SetDoubleBufferON, selected drawable is a pixmap, can not attach pixmap to pixmap");
3477 const unsigned currW = window.fWidth;
3478 const unsigned currH = window.fHeight;
3488 window.fBackBuffer =
pixmap.Get();
3491 Error(
"SetDoubleBufferON",
"QuartzPixmap initialization failed");
3507 fPimpl->fX11CommandBuffer.ClearXOROperations();
3513#pragma mark - Event management part.
3533 assert(
fPimpl->fX11EventTranslator.fEventQueue.size() > 0 &&
"NextEvent, event queue is empty");
3535 event =
fPimpl->fX11EventTranslator.fEventQueue.front();
3536 fPimpl->fX11EventTranslator.fEventQueue.pop_front();
3542 return (
Int_t)
fPimpl->fX11EventTranslator.fEventQueue.size();
3549 typedef X11::EventQueue_t::iterator iterator_type;
3551 iterator_type it =
fPimpl->fX11EventTranslator.fEventQueue.begin();
3552 iterator_type
eIt =
fPimpl->fX11EventTranslator.fEventQueue.end();
3554 for (; it !=
eIt; ++it) {
3558 fPimpl->fX11EventTranslator.fEventQueue.erase(it);
3574#pragma mark - "Drag and drop", "Copy and paste", X11 properties.
3581 assert(
name != 0 &&
"InternAtom, parameter 'name' is null");
3599 "SetPrimarySelectionOwner, windowID parameter is a 'root' window");
3601 "SetPrimarySelectionOwner, windowID parameter is not a valid window");
3605 "SetPrimarySelectionOwner, predefined XA_PRIMARY atom was not found");
3624 "SetSelectionOwner, windowID parameter is a 'root' window'");
3626 "SetSelectionOwner, windowID parameter is not a valid window");
3643 "GetPrimarySelectionOwner, predefined XA_PRIMARY atom was not found");
3667 "ConvertPrimarySelection, parameter 'windowID' is root window");
3669 "ConvertPrimarySelection, parameter windowID parameter is not a window id");
3673 "ConvertPrimarySelection, XA_PRIMARY predefined atom not found");
3677 "ConvertPrimarySelection, XA_STRING predefined atom not found");
3696 "ConvertSelection, parameter 'windowID' is root window'");
3698 "ConvertSelection, parameter 'windowID' is not a window id");
3733 "GetProperty, parameter 'windowID' is not a valid window id");
3735 "GetProperty, parameter 'propertyID' is not a valid atom");
3751 Error(
"GetProperty",
"Unknown property %s requested",
atomName.c_str());
3779 "GetPasteBuffer, parameter 'windowID' is root window");
3781 "GetPasteBuffer, parameter 'windowID' is not a valid window");
3783 "GetPasteBuffer, parameter 'propertyID' is not a valid atom");
3791 Error(
"GetPasteBuffer",
"No property %s on a window",
atomString.c_str());
3803 assert(
tmpFormat == 8 &&
"GetPasteBuffer, property has wrong format");
3843 "ChangeProperty, parameter 'windowID' is root window");
3845 "ChangeProperty, parameter 'windowID' is not a valid window id");
3847 "ChangeProperty, parameter 'propertyID' is not a valid atom");
3877 "ChangeProperties, parameter 'windowID' is root window");
3879 "ChangeProperties, parameter 'windowID' is not a valid window id");
3881 "ChangeProperties, parameter 'propertyID' is not a valid atom");
3907 "DeleteProperty, parameter 'windowID' is root window");
3909 "DeleteProperty, parameter 'windowID' is not a valid window");
3911 "DeleteProperty, parameter 'propertyID' is not a valid atom");
3931 "SetDNDAware, parameter 'windowID' is not a valid window id");
3933 "SetDNDAware, parameter 'windowID' is not a window");
3954 assert(
sizeof(
unsigned) == 4 &&
"SetDNDAware, sizeof(unsigned) must be 4");
3960 for (
unsigned i = 0;
typeList[i]; ++i)
3977 "IsDNDAware, windowID parameter is not a window");
3988 ::Warning(
"SetTypeList",
"Not implemented");
4020#pragma mark - Noops.
4154 "Warp, drawable is not a window");
4391#pragma mark - Details and aux. functions.
4396 return &
fPimpl->fX11EventTranslator;
4402 return &
fPimpl->fX11CommandBuffer;
4428 if (!drawable.fIsPixmap) {
4429 Error(
"GetCurrentContext",
"TCanvas/TPad's internal error,"
4430 " selected drawable is not a pixmap!");
4434 return drawable.fContext;
4455 Error(
"MakeProcessForeground",
"TransformProcessType failed with code %d",
int(
res1));
4458#ifdef MAC_OS_X_VERSION_10_9
4464 Error(
"MakeProcessForeground",
"SetFrontProcess failed with code %d",
res2);
4471#ifdef MAC_OS_X_VERSION_10_9
4479 Error(
"MakeProcessForeground",
"GetCurrentProcess failed with code %d", res);
4485 Error(
"MapProcessForeground",
"SetFrontProcess failed with code %d", res);
4519 if (fileName.
Get()) {
Handle_t Region_t
Region handle.
const Mask_t kGCDashOffset
const Mask_t kGCBackground
const Mask_t kGCForeground
const Mask_t kGCLineStyle
const Mask_t kGCSubwindowMode
const Mask_t kGCLineWidth
Handle_t Pixmap_t
Pixmap handle.
const Mask_t kGCClipXOrigin
Handle_t FontH_t
Font handle (as opposed to Font_t which is an index)
Handle_t Visual_t
Visual handle.
const Mask_t kGCFillStyle
Handle_t Window_t
Window handle.
const Mask_t kGCJoinStyle
Handle_t Display_t
Display handle.
ULong_t Time_t
Event time.
Handle_t GContext_t
Graphics context handle.
EInitialState
Initial window mapping state.
const Mask_t kGCTileStipXOrigin
Handle_t Drawable_t
Drawable handle.
Handle_t Cursor_t
Cursor handle.
const Mask_t kStructureNotifyMask
const Mask_t kGCPlaneMask
const Mask_t kGCGraphicsExposures
const Mask_t kGCClipYOrigin
const Mask_t kGCTileStipYOrigin
EMouseButton
Button names.
Handle_t Colormap_t
Colormap handle.
ULongptr_t Handle_t
Generic resource handle.
Handle_t FontStruct_t
Pointer to font structure.
static void update(gsl_integration_workspace *workspace, double a1, double b1, double area1, double error1, double a2, double b2, double area2, double error2)
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
void Warning(const char *location, const char *msgfmt,...)
Use this function in warning situations.
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
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 pixel
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 clipboard
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 ULong_t unsigned char prop_list Atom_t Atom_t target
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize DestroySubwindows
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 rect
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 result
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 length
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 child
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 CopyArea
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void foreground
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 ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len
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 bitmap
Option_t Option_t TPoint TPoint const char x2
Option_t Option_t TPoint TPoint const char x1
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void funcs
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 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 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 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 ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t format
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void SetCursor
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t grab
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void when
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t src
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize fs
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 gval
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 ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
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 ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t property
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 ULong_t unsigned char prop_list ConvertSelection
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 GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t button
Option_t Option_t TPoint TPoint const char text
Option_t Option_t TPoint TPoint const char y1
Binding & operator=(OUT(*fun)(void))
R__EXTERN TVirtualMutex * gROOTMutex
R__EXTERN TSystem * gSystem
#define R__LOCKGUARD(mutex)
DerivedType * Get() const
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.
This class implements TVirtualX interface for MacOS X, using Cocoa and Quartz 2D.
void DeleteFont(FontStruct_t fs) override
Explicitly deletes the font structure "fs" obtained via LoadQueryFont().
Int_t WriteGIF(char *name) override
Writes the current window into GIF file.
void SetCharacterUp(Float_t chupx, Float_t chupy) override
Sets character up vector.
Bool_t IsDNDAware(Window_t win, Atom_t *typelist) override
Checks if the Window is DND aware, and knows any of the DND formats passed in argument.
Pixmap_t CreatePixmap(Drawable_t wid, UInt_t w, UInt_t h) override
Creates a pixmap of the specified width and height and returns a pixmap ID that identifies it.
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) override
Translates coordinates in one window to the coordinate space of another window.
void GetRegionBox(Region_t reg, Rectangle_t *rect) override
Returns smallest enclosing rectangle.
Window_t GetParent(Window_t wid) const override
Returns the parent of the window "id".
Double_t GetOpenGLScalingFactor() override
On a HiDPI resolution it can be > 1., this means glViewport should use scaled width and height.
void GetCharacterUp(Float_t &chupx, Float_t &chupy) override
Returns character up vector.
UInt_t ScreenWidthMM() const override
Returns the width of the screen in millimeters.
std::vector< GCValues_t > fX11Contexts
void GrabPointer(Window_t wid, UInt_t evmask, Window_t confine, Cursor_t cursor, Bool_t grab=kTRUE, Bool_t owner_events=kTRUE) override
Establishes an active pointer grab.
void DrawLineAux(Drawable_t wid, const GCValues_t &gcVals, Int_t x1, Int_t y1, Int_t x2, Int_t y2)
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 **) override
Returns the actual type of the property; the actual format of the property; the number of 8-bit,...
void ReparentTopLevel(Window_t wid, Window_t pid, Int_t x, Int_t y)
void SetDoubleBufferON() override
Turns double buffer mode on.
void PutPixel(Drawable_t wid, Int_t x, Int_t y, ULong_t pixel) override
Overwrites the pixel in the image with the specified pixel value.
Bool_t IsCocoaDraw() const
void GetWindowSize(Drawable_t wid, Int_t &x, Int_t &y, UInt_t &w, UInt_t &h) override
Returns the location and the size of window "id".
void SetApplicationIcon()
void SetWindowBackgroundPixmap(Window_t wid, Pixmap_t pxm) override
Sets the background pixmap of the window "id" to the specified pixmap "pxm".
bool fDisplayShapeChanged
void DeleteOpenGLContext(Int_t ctxID) override
Deletes OpenGL context for window "wid".
Bool_t AllocColor(Colormap_t cmap, ColorStruct_t &color) override
Allocates a read-only colormap entry corresponding to the closest RGB value supported by the hardware...
Bool_t EqualRegion(Region_t rega, Region_t regb) override
Returns kTRUE if the two regions have the same offset, size, and shape.
void CopyPixmap(Int_t wid, Int_t xpos, Int_t ypos) override
Copies the pixmap "wid" at the position [xpos,ypos] in the current window.
void FreeFontStruct(FontStruct_t fs) override
Frees the font structure "fs".
void DestroySubwindows(Window_t wid) override
The DestroySubwindows function destroys all inferior windows of the specified window,...
Int_t OpenPixmap(UInt_t w, UInt_t h) override
Creates a pixmap of the width "w" and height "h" you specified.
Int_t TextWidth(FontStruct_t font, const char *s, Int_t len) override
Return length of the string "s" in pixels. Size depends on font.
void ResizeWindow(Int_t wid) override
Resizes the window "wid" if necessary.
void FillRectangleAux(Drawable_t wid, const GCValues_t &gcVals, Int_t x, Int_t y, UInt_t w, UInt_t h)
Atom_t FindAtom(const std::string &atomName, bool addIfNotFound)
ROOT::MacOSX::X11::CommandBuffer * GetCommandBuffer() const
void ChangeGC(GContext_t gc, GCValues_t *gval) override
Changes the components specified by the mask in gval for the specified GC.
void CopyAreaAux(Drawable_t src, Drawable_t dst, const GCValues_t &gc, Int_t srcX, Int_t srcY, UInt_t width, UInt_t height, Int_t dstX, Int_t dstY)
void SetDoubleBufferOFF() override
Turns double buffer mode off.
void DrawRectangleAux(Drawable_t wid, const GCValues_t &gcVals, Int_t x, Int_t y, UInt_t w, UInt_t h)
void Bell(Int_t percent) override
Sets the sound bell. Percent is loudness from -100% to 100%.
void SetWMState(Window_t winID, EInitialState state) override
Sets the initial state of the window "id": either kNormalState or kIconicState.
Window_t GetWindowID(Int_t wid) override
Returns the X11 window identifier.
void SetWMSizeHints(Window_t winID, UInt_t wMin, UInt_t hMin, UInt_t wMax, UInt_t hMax, UInt_t wInc, UInt_t hInc) override
Gives the window manager minimum and maximum size hints of the window "id".
void LookupString(Event_t *event, char *buf, Int_t buflen, UInt_t &keysym) override
Converts the keycode from the event structure to a key symbol (according to the modifiers specified i...
Cursor_t CreateCursor(ECursor cursor) override
Creates the specified cursor.
Window_t GetCurrentWindow() const override
pointer to the current internal window used in canvas graphics
void IntersectRegion(Region_t rega, Region_t regb, Region_t result) override
Computes the intersection of two regions.
std::unique_ptr< ROOT::MacOSX::Details::CocoaPrivate > fPimpl
void SetWindowName(Window_t wid, char *name) override
Sets the window name.
void Warp(Int_t ix, Int_t iy, Window_t wid) override
Sets the pointer position.
void IconifyWindow(Window_t wid) override
Iconifies the window "id".
Int_t ResizePixmap(Int_t wid, UInt_t w, UInt_t h) override
Resizes the specified pixmap "wid".
void * GetCurrentContext()
Window_t GetInputFocus() override
Returns the window id of the window having the input focus.
Colormap_t GetColormap() const override
Returns handle to colormap.
void DrawRectangle(Drawable_t wid, GContext_t gc, Int_t x, Int_t y, UInt_t w, UInt_t h) override
Draws rectangle outlines of [x,y] [x+w,y] [x+w,y+h] [x,y+h].
void FreeColor(Colormap_t cmap, ULong_t pixel) override
Frees color cell with specified pixel value.
Bool_t NeedRedraw(ULong_t tgwindow, Bool_t force) override
Notify the low level GUI layer ROOT requires "tgwindow" to be updated.
void DeleteGC(GContext_t gc) override
Deletes the specified GC "gc".
void SetDNDAware(Window_t, Atom_t *) override
Add XdndAware property and the list of drag and drop types to the Window win.
Int_t AddPixmap(ULong_t pixid, UInt_t w, UInt_t h) override
Registers a pixmap created by TGLManager as a ROOT pixmap.
void DestroyWindow(Window_t wid) override
Destroys the window "id" as well as all of its subwindows.
void ShapeCombineMask(Window_t wid, Int_t x, Int_t y, Pixmap_t mask) override
The Non-rectangular Window Shape Extension adds non-rectangular windows to the System.
void GetPlanes(Int_t &nplanes) override
Returns the maximum number of planes.
void UpdateWindow(Int_t mode) override
Updates or synchronises client and server once (not permanent).
Int_t SupportsExtension(const char *extensionName) const override
Returns 1 if window system server supports extension given by the argument, returns 0 in case extensi...
Int_t GetScreen() const override
Returns screen number.
Bool_t HasTTFonts() const override
Returns True when TrueType fonts are used.
void SetWindowBackground(Window_t wid, ULong_t color) override
Sets the background of the window "id" to the specified color value "color".
Bool_t ReadPictureDataFromFile(const char *filename, char ***ret_data) override
Reads picture data from file "filename" and store it in "ret_data".
void DestroyRegion(Region_t reg) override
Destroys the region "reg".
void GetRGB(Int_t index, Float_t &r, Float_t &g, Float_t &b) override
Returns RGB values for color "index".
unsigned char * GetColorBits(Drawable_t wid, Int_t x, Int_t y, UInt_t w, UInt_t h) override
Returns an array of pixels created from a part of drawable (defined by x, y, w, h) in format:
void SendEvent(Window_t wid, Event_t *ev) override
Specifies the event "ev" is to be sent to the window "id".
Int_t KeysymToKeycode(UInt_t keysym) override
Converts the "keysym" to the appropriate keycode.
void QueryColor(Colormap_t cmap, ColorStruct_t &color) override
Returns the current RGB value for the pixel in the "color" structure.
void MoveWindow(Int_t wid, Int_t x, Int_t y) override
Moves the window "wid" to the specified x and y coordinates.
void SelectInput(Window_t wid, UInt_t evmask) override
Defines which input events the window is interested in.
void ClearWindow() override
Clears the entire area of the current window.
void SetClipRectangles(GContext_t gc, Int_t x, Int_t y, Rectangle_t *recs, Int_t n) override
Sets clipping rectangles in graphics context.
Bool_t CreatePictureFromData(Drawable_t wid, char **data, Pixmap_t &pict, Pixmap_t &pict_mask, PictureAttributes_t &attr) override
Creates a picture pict from data in bitmap format.
void DrawString(Drawable_t wid, GContext_t gc, Int_t x, Int_t y, const char *s, Int_t len) override
Each character image, as defined by the font in the GC, is treated as an additional mask for a fill o...
std::vector< std::string > fAtomToName
void XorRegion(Region_t rega, Region_t regb, Region_t result) override
Calculates the difference between the union and intersection of two regions.
void SetTextMagnitude(Float_t mgn) override
Sets the current text magnification factor to "mgn".
FontStruct_t GetFontStruct(FontH_t fh) override
Retrieves the associated font structure of the font specified font handle "fh".
void SetMWMHints(Window_t winID, UInt_t value, UInt_t decorators, UInt_t inputMode) override
Sets decoration style.
Handle_t GetCurrentOpenGLContext() override
Asks OpenGL subsystem about the current OpenGL context.
Bool_t MakeOpenGLContextCurrent(Handle_t ctx, Window_t windowID) override
Makes context ctx current OpenGL context.
void SetPrimarySelectionOwner(Window_t wid) override
Makes the window "id" the current owner of the primary selection.
void GetGCValues(GContext_t gc, GCValues_t &gval) override
Returns the components specified by the mask in "gval" for the specified GC "gc" (see also the GCValu...
void SetRGB(Int_t cindex, Float_t r, Float_t g, Float_t b) override
Sets color intensities the specified color index "cindex".
void MapRaised(Window_t wid) override
Maps the window "id" and all of its subwindows that have had map requests on the screen and put this ...
Pixmap_t CreatePixmapFromData(unsigned char *bits, UInt_t width, UInt_t height) override
create pixmap from RGB data.
void SetClipOFF(Int_t wid) override
Turns off the clipping for the window "wid".
void GetWindowAttributes(Window_t wid, WindowAttributes_t &attr) override
The WindowAttributes_t structure is set to default.
Int_t RequestString(Int_t x, Int_t y, char *text) override
Requests string: text is displayed and can be edited with Emacs-like keybinding.
void ChangeActivePointerGrab(Window_t, UInt_t, Cursor_t) override
Changes the specified dynamic parameters if the pointer is actively grabbed by the client and if the ...
Bool_t CheckEvent(Window_t wid, EGEventType type, Event_t &ev) override
Check if there is for window "id" an event of type "type".
Int_t OpenDisplay(const char *displayName) override
Opens connection to display server (if such a thing exist on the current platform).
static Atom_t fgDeleteWindowAtom
void QueryPointer(Int_t &x, Int_t &y) override
Returns the pointer position.
void SetDrawMode(EDrawMode mode) override
Sets the drawing mode.
Bool_t ParseColor(Colormap_t cmap, const char *cname, ColorStruct_t &color) override
Looks up the string name of a color "cname" with respect to the screen associated with the specified ...
void GetImageSize(Drawable_t wid, UInt_t &width, UInt_t &height) override
Returns the width and height of the image id.
Int_t InitWindow(ULong_t window) override
Creates a new window and return window number.
void CloseDisplay() override
Closes connection to display server and destroys all windows.
void ClearArea(Window_t wid, Int_t x, Int_t y, UInt_t w, UInt_t h) override
Paints a rectangular area in the specified window "id" according to the specified dimensions with the...
void DeletePixmap(Pixmap_t pixmapID) override
Explicitly deletes the pixmap resource "pmap".
void MapSubwindows(Window_t wid) override
Maps all subwindows for the specified window "id" in top-to-bottom stacking order.
void ReparentWindow(Window_t wid, Window_t pid, Int_t x, Int_t y) override
If the specified window is mapped, ReparentWindow automatically performs an UnmapWindow request on it...
Window_t GetDefaultRootWindow() const override
Returns handle to the default root window created when calling XOpenDisplay().
void SetDoubleBuffer(Int_t wid, Int_t mode) override
Sets the double buffer on/off on the window "wid".
void GetGeometry(Int_t wid, Int_t &x, Int_t &y, UInt_t &w, UInt_t &h) override
Returns position and size of window "wid".
void RemoveWindow(ULong_t qwid) override
Removes the created by Qt window "qwid".
Bool_t CreatePictureFromFile(Drawable_t wid, const char *filename, Pixmap_t &pict, Pixmap_t &pict_mask, PictureAttributes_t &attr) override
Creates a picture pict from data in file "filename".
void DrawStringAux(Drawable_t wid, const GCValues_t &gc, Int_t x, Int_t y, const char *s, Int_t len)
void GetPasteBuffer(Window_t wid, Atom_t atom, TString &text, Int_t &nchar, Bool_t del) override
Gets contents of the paste buffer "atom" into the string "text".
Drawable_t CreateImage(UInt_t width, UInt_t height) override
Allocates the memory needed for an drawable.
void Update(Int_t mode) override
Flushes (mode = 0, default) or synchronizes (mode = 1) X output buffer.
Atom_t InternAtom(const char *atom_name, Bool_t only_if_exist) override
Returns the atom identifier associated with the specified "atom_name" string.
Handle_t CreateOpenGLContext(Window_t windowID, Handle_t sharedContext) override
Creates OpenGL context for window "windowID".
void ChangeWindowAttributes(Window_t wid, SetWindowAttributes_t *attr) override
Changes the attributes of the specified window "id" according the values provided in "attr".
GContext_t CreateGC(Drawable_t wid, GCValues_t *gval) override
Creates a graphics context using the provided GCValues_t *gval structure.
Int_t AddWindow(ULong_t qwid, UInt_t w, UInt_t h) override
Registers a window created by Qt as a ROOT window.
void UnmapWindow(Window_t wid) override
Unmaps the specified window "id".
void ClearAreaAux(Window_t wid, Int_t x, Int_t y, UInt_t w, UInt_t h)
void GrabButton(Window_t wid, EMouseButton button, UInt_t modifier, UInt_t evmask, Window_t confine, Cursor_t cursor, Bool_t grab=kTRUE) override
Establishes a passive grab on a certain mouse button.
Bool_t EmptyRegion(Region_t reg) override
Returns kTRUE if the region reg is empty.
void ConvertSelection(Window_t, Atom_t &, Atom_t &, Atom_t &, Time_t &) override
Requests that the specified selection be converted to the specified target type.
void ReconfigureDisplay()
void RaiseWindow(Window_t wid) override
Raises the specified window to the top of the stack so that no sibling window obscures it.
void DrawSegments(Drawable_t wid, GContext_t gc, Segment_t *segments, Int_t nSegments) override
Draws multiple line segments.
ROOT::MacOSX::X11::Rectangle GetDisplayGeometry() const
void MapWindow(Window_t wid) override
Maps the window "id" and all of its subwindows that have had map requests.
void SetWMSize(Window_t winID, UInt_t w, UInt_t h) override
Tells window manager the desired size of window "id".
void SetDashes(GContext_t gc, Int_t offset, const char *dash_list, Int_t n) override
Sets the dash-offset and dash-list attributes for dashed line styles in the specified GC.
void SetClipRegion(Int_t wid, Int_t x, Int_t y, UInt_t w, UInt_t h) override
Sets clipping region for the window "wid".
Bool_t PointInRegion(Int_t x, Int_t y, Region_t reg) override
Returns kTRUE if the point [x, y] is contained in the region reg.
Window_t FindRWindow(Window_t win, Window_t dragwin, Window_t input, int x, int y, int maxd) override
Recursively search in the children of Window for a Window which is at location x, y and is DND aware,...
void RescaleWindow(Int_t wid, UInt_t w, UInt_t h) override
Rescales the window "wid".
char ** ListFonts(const char *fontname, Int_t max, Int_t &count) override
Returns list of font names matching fontname regexp, like "-*-times-*".
void WritePixmap(Int_t wid, UInt_t w, UInt_t h, char *pxname) override
Writes the pixmap "wid" in the bitmap file "pxname".
void CopyGC(GContext_t org, GContext_t dest, Mask_t mask) override
Copies the specified components from the source GC "org" to the destination GC "dest".
ROOT::MacOSX::X11::EventTranslator * GetEventTranslator() const
void ReparentChild(Window_t wid, Window_t pid, Int_t x, Int_t y)
void DrawSegmentsAux(Drawable_t wid, const GCValues_t &gcVals, const Segment_t *segments, Int_t nSegments)
void GrabKey(Window_t wid, Int_t keycode, UInt_t modifier, Bool_t grab=kTRUE) override
Establishes a passive grab on the keyboard.
void DeletePictureData(void *data) override
Delete picture data created by the function ReadPictureDataFromFile.
Int_t EventsPending() override
Returns the number of events that have been received from the X server but have not been removed from...
void SelectWindow(Int_t wid) override
Selects the window "wid" to which subsequent output is directed.
void UnionRectWithRegion(Rectangle_t *rect, Region_t src, Region_t dest) override
Updates the destination region from a union of the specified rectangle and the specified source regio...
Display_t GetDisplay() const override
Returns handle to display (might be useful in some cases where direct X11 manipulation outside of TVi...
void FlushOpenGLBuffer(Handle_t ctxID) override
Flushes OpenGL buffer.
void NextEvent(Event_t &event) override
The "event" is set to default event.
void SetIconName(Window_t wid, char *name) override
Sets the window icon name.
Bool_t Init(void *display) override
Initializes the X system.
void DeletePixmapAux(Pixmap_t pixmapID)
void ClosePixmap() override
Deletes current pixmap.
Pixmap_t CreateBitmap(Drawable_t wid, const char *bitmap, UInt_t width, UInt_t height) override
Creates a bitmap (i.e.
void SetKeyAutoRepeat(Bool_t on=kTRUE) override
Turns key auto repeat on (kTRUE) or off (kFALSE).
void FreeFontNames(char **fontlist) override
Frees the specified the array of strings "fontlist".
void UnionRegion(Region_t rega, Region_t regb, Region_t result) override
Computes the union of two regions.
Window_t GetPrimarySelectionOwner() override
Returns the window id of the current owner of the primary selection.
void SetWMPosition(Window_t winID, Int_t x, Int_t y) override
Tells the window manager the desired position [x,y] of window "id".
void SetWMTransientHint(Window_t winID, Window_t mainWinID) override
Tells window manager that the window "id" is a transient window of the window "main_id".
void SetIconPixmap(Window_t wid, Pixmap_t pix) override
Sets the icon name pixmap.
Pixmap_t ReadGIF(Int_t x0, Int_t y0, const char *file, Window_t wid) override
If id is NULL - loads the specified gif file at position [x0,y0] in the current window.
void LowerWindow(Window_t wid) override
Lowers the specified window "id" to the bottom of the stack so that it does not obscure any sibling w...
ROOT::MacOSX::X11::name_to_atom_map fNameToAtom
Bool_t SetSelectionOwner(Window_t windowID, Atom_t &selectionID) override
Changes the owner and last-change time for the specified selection.
Handle_t GetNativeEvent() const override
Returns the current native event handle.
void SubtractRegion(Region_t rega, Region_t regb, Region_t result) override
Subtracts regb from rega and stores the results in result.
void FillRectangle(Drawable_t wid, GContext_t gc, Int_t x, Int_t y, UInt_t w, UInt_t h) override
Fills the specified rectangle defined by [x,y] [x+w,y] [x+w,y+h] [x,y+h].
Region_t CreateRegion() override
Creates a new empty region.
void SelectPixmap(Int_t qpixid) override
Selects the pixmap "qpixid".
void ConvertPrimarySelection(Window_t wid, Atom_t clipboard, Time_t when) override
Causes a SelectionRequest event to be sent to the current primary selection owner.
void GetFontProperties(FontStruct_t font, Int_t &max_ascent, Int_t &max_descent) override
Returns the font properties.
void DrawLine(Drawable_t wid, GContext_t gc, Int_t x1, Int_t y1, Int_t x2, Int_t y2) override
Uses the components of the specified GC to draw a line between the specified set of points (x1,...
void ChangeProperty(Window_t wid, Atom_t property, Atom_t type, UChar_t *data, Int_t len) override
Alters the property for the specified window and causes the X server to generate a PropertyNotify eve...
void SetTypeList(Window_t win, Atom_t prop, Atom_t *typelist) override
Add the list of drag and drop types to the Window win.
Region_t PolygonRegion(Point_t *points, Int_t np, Bool_t winding) override
Returns a region for the polygon defined by the points array.
Int_t GetDoubleBuffer(Int_t wid) override
Queries the double buffer value for the window "wid".
void SetClassHints(Window_t wid, char *className, char *resourceName) override
Sets the windows class and resource name.
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) override
Creates an unmapped subwindow for a specified parent window and returns the created window.
Int_t RequestLocator(Int_t mode, Int_t ctyp, Int_t &x, Int_t &y) override
Requests Locator position.
void SetInputFocus(Window_t wid) override
Changes the input focus to specified window "id".
Visual_t GetVisual() const override
Returns handle to visual.
void MoveResizeWindow(Window_t wid, Int_t x, Int_t y, UInt_t w, UInt_t h) override
Changes the size and location of the specified window "id" without raising it.
void FillPolygonAux(Window_t wid, const GCValues_t &gcVals, const Point_t *polygon, Int_t nPoints)
Int_t GetDepth() const override
Returns depth of screen (number of bit planes).
FontStruct_t LoadQueryFont(const char *font_name) override
Provides the most common way for accessing a font: opens (loads) the specified font and returns a poi...
bool MakeProcessForeground()
Window_t CreateOpenGLWindow(Window_t parentID, UInt_t width, UInt_t height, const std::vector< std::pair< UInt_t, Int_t > > &format) override
Create window with special pixel format. Noop everywhere except Cocoa.
std::map< Atom_t, Window_t > fSelectionOwners
void DeleteProperty(Window_t, Atom_t &) override
Deletes the specified property only if the property was defined on the specified window and causes th...
UInt_t ExecCommand(TGWin32Command *code) override
Executes the command "code" coming from the other threads (Win32)
void SetCursor(Window_t wid, Cursor_t curid) override
Sets the cursor "curid" to be used when the pointer is in the window "id".
void SetForeground(GContext_t gc, ULong_t foreground) override
Sets the foreground color for the specified GC (shortcut for ChangeGC with only foreground mask set).
FontH_t GetFontHandle(FontStruct_t fs) override
Returns the font handle of the specified font structure "fs".
void DeleteImage(Drawable_t img) override
Deallocates the memory associated with the image img.
Drawable_t fSelectedDrawable
void CloseWindow() override
Deletes current window.
void FillPolygon(Window_t wid, GContext_t gc, Point_t *polygon, Int_t nPoints) override
Fills the region closed by the specified path.
ROOT::MacOSX::X11::Rectangle fDisplayRect
void WMDeleteNotify(Window_t wid) override
Tells WM to send message when window is closed via WM.
void PutImage(Drawable_t wid, GContext_t gc, Drawable_t img, Int_t dx, Int_t dy, Int_t x, Int_t y, UInt_t w, UInt_t h) override
Combines an image with a rectangle of the specified drawable.
void CopyArea(Drawable_t src, Drawable_t dst, GContext_t gc, Int_t srcX, Int_t srcY, UInt_t width, UInt_t height, Int_t dstX, Int_t dstY) override
Combines the specified rectangle of "src" with the specified rectangle of "dest" according to the "gc...
void Sync(Int_t mode) override
Set synchronisation on or off.
ULong_t GetPixel(Color_t cindex) override
Returns pixel value associated to specified ROOT color number "cindex".
std::map< Atom_t, Window_t >::iterator selection_iterator
const char * DisplayName(const char *) override
Returns hostname on which the display is opened.
void ChangeProperties(Window_t wid, Atom_t property, Atom_t type, Int_t format, UChar_t *data, Int_t len) override
Alters the property for the specified window and causes the X server to generate a PropertyNotify eve...
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.
static const TString & GetIconPath()
Get the icon path in the installation. Static utility function.
virtual char * Which(const char *search, const char *file, EAccessMode mode=kFileExists)
Find location of file in a search path.
Semi-Abstract base class defining a generic interface to the underlying, low level,...
QuartzImage * fBackgroundPixmap
unsigned long fBackgroundPixel
bool GLViewIsValidDrawable(ROOTOpenGLView *glView)
Int_t MapKeySymToKeyCode(Int_t keySym)
bool ViewIsHtmlViewFrame(NSView< X11Window > *view, bool checkParent)
int GlobalYCocoaToROOT(CGFloat yCocoa)
void PixelToRGB(Pixel_t pixelColor, CGFloat *rgb)
void MapUnicharToKeySym(unichar key, char *buf, Int_t len, UInt_t &rootKeySym)
void FillPixmapBuffer(const unsigned char *bitmap, unsigned width, unsigned height, ULong_t foregroundPixel, ULong_t backgroundPixel, unsigned depth, unsigned char *imageData)
NSPoint TranslateToScreen(NSView< X11Window > *from, NSPoint point)
NSView< X11Window > * FindDNDAwareViewInPoint(NSView *parentView, Window_t dragWinID, Window_t inputWinID, Int_t x, Int_t y, Int_t maxDepth)
QuartzWindow * FindWindowInPoint(Int_t x, Int_t y)
int GlobalXCocoaToROOT(CGFloat xCocoa)
void WindowLostFocus(Window_t winID)
int LocalYROOTToCocoa(NSView< X11Window > *parentView, CGFloat yROOT)
bool ParseXLFDName(const std::string &xlfdName, XLFDName &dst)
NSPoint TranslateCoordinates(NSView< X11Window > *fromView, NSView< X11Window > *toView, NSPoint sourcePoint)
QuartzWindow * CreateTopLevelWindow(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)
int GlobalXROOTToCocoa(CGFloat xROOT)
QuartzView * CreateChildView(QuartzView *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)
void GetRootWindowAttributes(WindowAttributes_t *attr)
bool ViewIsTextViewFrame(NSView< X11Window > *view, bool checkParent)
NSPoint TranslateFromScreen(NSPoint point, NSView< X11Window > *to)
NSUInteger GetCocoaKeyModifiersFromROOTKeyModifiers(UInt_t rootKeyModifiers)
void InitWithPredefinedAtoms(name_to_atom_map &nameToAtom, std::vector< std::string > &atomNames)
void DrawTextLineNoKerning(CGContextRef ctx, CTFontRef font, const std::vector< UniChar > &text, Int_t x, Int_t y)
void DrawPattern(void *data, CGContextRef ctx)
bool SetFillPattern(CGContextRef ctx, const unsigned *patternIndex)
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)
UInt_t fCode
key or button code
Graphics context structure.
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.
Window attributes that can be inquired.