40#include <ApplicationServices/ApplicationServices.h>
41#include <OpenGL/OpenGL.h>
43#include <Cocoa/Cocoa.h>
83#pragma mark - Display configuration management.
93 " is either null or has a wrong type");
95 gCocoa->ReconfigureDisplay();
99#pragma mark - Aux. functions called from GUI-rendering part.
104 assert(ctx != 0 &&
"SetStrokeForegroundColorFromX11Context, parameter 'ctx' is null");
110 ::Warning(
"SetStrokeForegroundColorFromX11Context",
111 "x11 context does not have line color information");
120 assert(ctx != 0 &&
"SetStrokeDashFromX11Context, ctx parameter is null");
126 "SetStrokeDashFromX11Context, x11 context has bad dash length > sizeof(fDashes)");
139 ::Warning(
"SetStrokeDoubleDashFromX11Context",
"Not implemented yet, kick tpochep!");
147 assert(ctx != 0 &&
"SetStrokeParametersFromX11Context, parameter 'ctx' is null");
165 ::Warning(
"SetStrokeParametersFromX11Context",
"line style bit is set,"
166 " but line style is unknown");
178 assert(ctx != 0 &&
"SetFilledAreaColorFromX11Context, parameter 'ctx' is null");
184 ::Warning(
"SetFilledAreaColorFromX11Context",
"no fill color found in x11 context");
189struct PatternContext {
201 PatternContext(
const PatternContext &) =
delete;
202 PatternContext(PatternContext &&) =
delete;
203 PatternContext &
operator = (
const PatternContext &) =
delete;
204 PatternContext &
operator = (PatternContext &&) =
delete;
208 if (
image != fImage) {
215 Int_t fFillStyle = 0;
263 assert(ctx != 0 &&
"DrawTile, ctx parameter is null");
273 assert(0 &&
"DrawTile, pattern is neither a QuartzImage, nor a QuartzPixmap");
283 assert(
info != 0 &&
"DrawPattern, parameter 'info' is null");
284 assert(ctx != 0 &&
"DrawPattern, parameter 'ctx' is null");
298 "DrawPattern, stipple must be a QuartzImage object");
300 assert(
image.fIsStippleMask ==
YES &&
"DrawPattern, image is not a stipple mask");
307 "DrawPattern, fill style is FillOpaqueStippled, but background color is not set in a context");
328 delete static_cast<PatternContext *
>(
info);
338 assert(ctx != 0 &&
"SetFillPattern, parameter 'ctx' is null");
352 const CGFloat alpha = 1.;
360 assert(
child !=
nil &&
"ParentRendersToChild, parameter 'child' is nil");
364class ViewFixer
final {
383 ViewFixer(
const ViewFixer &
rhs) =
delete;
384 ViewFixer &
operator = (
const ViewFixer &) =
delete;
393 if (
c == 9 || (
c >= 32 &&
c < 127))
430 : fSelectedDrawable(0),
434 fForegroundProcess(
false),
436 fDisplayShapeChanged(
true)
439 "TGCocoa, gSystem is eihter null or has a wrong type");
442 if (!
system->CocoaInitialized())
443 system->InitializeCocoa();
456 fSelectedDrawable(0),
460 fForegroundProcess(
false),
462 fDisplayShapeChanged(
true)
465 "TGCocoa, gSystem is eihter null or has a wrong type");
468 if (!
system->CocoaInitialized())
469 system->InitializeCocoa();
583 }
else if (
mode > 0) {
610 CGFloat
xMin = frame.origin.x,
xMax =
xMin + frame.size.width;
611 CGFloat
yMin = frame.origin.y,
yMax =
yMin + frame.size.height;
613 for (NSUInteger i = 1,
e =
screens.count; i <
e; ++i) {
615 xMin = std::min(
xMin, frame.origin.x);
616 xMax = std::max(
xMax, frame.origin.x + frame.size.width);
617 yMin = std::min(
yMin, frame.origin.y);
618 yMax = std::max(
yMax, frame.origin.y + frame.size.height);
632#pragma mark - Window management part.
638 return fPimpl->GetRootWindowID();
663 return CreateWindow(
parentID, 0, 0,
attr.fWidth,
attr.fHeight, 0,
attr.fDepth,
attr.fClass, 0, 0, 0);
687 auto drawable =
fPimpl->GetDrawable(
wid);
711 return [drawable getDrawMode];
719 if (drawable.fIsPixmap) {
743 if (window.fIsPixmap ==
YES)
772 "ClearWindow, fSelectedDrawable is invalid");
801 h = drawable.fHeight;
803 if (!drawable.fIsPixmap) {
808 NSView<X11Window> *
const view = window.fContentView.fParentView ? window.fContentView.fParentView : window.fContentView;
851 "ResizeWindow, parameter 'windowID' is a root window's id");
856 if (window.fBackBuffer) {
876 "UpdateWindow, fSelectedDrawable is not a valid window id");
941 "CreateWindow, parent view must be QuartzView");
984 fPimpl->fX11EventTranslator.CheckUnmappedView(
wid);
987 "DestroyWindow, can not be called for QuartzPixmap or QuartzImage object");
990 if (
fPimpl->fX11CommandBuffer.BufferSize())
991 fPimpl->fX11CommandBuffer.RemoveOperationsForDrawable(
wid);
994 if ((
needFocusChange = window == window.fQuartzWindow && window.fQuartzWindow.fHasFocus))
995 window.fHasFocus =
NO;
999 fPimpl->fX11EventTranslator.GenerateDestroyNotify(
wid);
1031 "DestroySubwindows, can not be called for QuartzPixmap or QuartzImage object");
1068 assert(!
fPimpl->IsRootWindow(
wid) &&
"ChangeWindowAttributes, called for root window");
1069 assert(
attr != 0 &&
"ChangeWindowAttributes, parameter 'attr' is null");
1100 assert(!
fPimpl->IsRootWindow(
wid) &&
"ReparentChild, can not re-parent root window");
1105 if (
fPimpl->IsRootWindow(pid)) {
1109 view.fParentView =
nil;
1111 NSRect frame = view.frame;
1112 frame.origin = NSPoint();
1114 NSUInteger
styleMask = kClosableWindowMask | kMiniaturizableWindowMask | kResizableWindowMask;
1115 if (!view.fOverrideRedirect)
1134 assert(
newParent.fIsPixmap ==
NO &&
"ReparentChild, pixmap can not be a new parent");
1147 if (
fPimpl->IsRootWindow(pid))
1171 assert(!
fPimpl->IsRootWindow(
wid) &&
"ReparentWindow, can not re-parent root window");
1174 if (view.fParentView)
1187 assert(!
fPimpl->IsRootWindow(
wid) &&
"MapWindow, called for root window");
1207 assert(!
fPimpl->IsRootWindow(
wid) &&
"MapSubwindows, called for 'root' window");
1222 assert(!
fPimpl->IsRootWindow(
wid) &&
"MapRaised, called for root window");
1243 assert(!
fPimpl->IsRootWindow(
wid) &&
"UnmapWindow, called for root window");
1248 fPimpl->fX11EventTranslator.CheckUnmappedView(
wid);
1253 if (
win ==
win.fQuartzWindow &&
win.fQuartzWindow.fHasFocus)
1275 assert(!
fPimpl->IsRootWindow(
wid) &&
"RaiseWindow, called for root window");
1277 if (!
fPimpl->GetWindow(
wid).fParentView)
1292 assert(!
fPimpl->IsRootWindow(
wid) &&
"LowerWindow, called for root window");
1294 if (!
fPimpl->GetWindow(
wid).fParentView)
1313 assert(!
fPimpl->IsRootWindow(
wid) &&
"MoveWindow, called for root window");
1332 assert(!
fPimpl->IsRootWindow(
wid) &&
"MoveResizeWindow, called for 'root' window");
1344 assert(!
fPimpl->IsRootWindow(
wid) &&
"ResizeWindow, called for 'root' window");
1349 const UInt_t siMax = std::numeric_limits<Int_t>::max();
1367 assert(!
fPimpl->IsRootWindow(
wid) &&
"IconifyWindow, can not iconify the root window");
1368 assert(
fPimpl->GetWindow(
wid).fIsPixmap ==
NO &&
"IconifyWindow, invalid window id");
1371 assert(
win.fQuartzWindow ==
win &&
"IconifyWindow, can be called only for a top level window");
1373 fPimpl->fX11EventTranslator.CheckUnmappedView(
wid);
1376 if (
fPimpl->fX11CommandBuffer.BufferSize())
1377 fPimpl->fX11CommandBuffer.RemoveOperationsForDrawable(
wid);
1379 if (window.fQuartzWindow.fHasFocus) {
1381 window.fQuartzWindow.fHasFocus =
NO;
1485 if (!window.fIsPixmap) {
1505 assert(!
fPimpl->IsRootWindow(
wid) &&
"SetWindowBackground, can not set color for root window");
1507 fPimpl->GetWindow(
wid).fBackgroundPixel = color;
1521 "SetWindowBackgroundPixmap, can not set background for a root window");
1523 "SetWindowBackgroundPixmap, invalid window id");
1527 window.fBackgroundPixmap =
nil;
1532 "SetWindowBackgroundPixmap, parameter 'pixmapID' is not a valid pixmap id");
1534 "SetWindowBackgroundPixmap, bad drawable");
1553 Error(
"SetWindowBackgroundPixmap",
"QuartzImage initialization failed");
1566 return view.fParentView ? view.fParentView.fID :
fPimpl->GetRootWindowID();
1612 "ShapeCombineMask, windowID parameter is a 'root' window");
1614 "ShapeCombineMask, windowID parameter is a bad window id");
1616 "ShapeCombineMask, pixmapID parameter must point to QuartzImage object");
1622 assert(
srcImage.fIsStippleMask ==
YES &&
"ShapeCombineMask, source image is not a stipple mask");
1629 qw.fShapeCombineMask =
image.Get();
1635#pragma mark - "Window manager hints" set of functions.
1643 assert(!
fPimpl->IsRootWindow(
wid) &&
"SetMWMHints, called for 'root' window");
1650 newMask |= kClosableWindowMask;
1654 newMask |= kMiniaturizableWindowMask | kResizableWindowMask;
1657 newMask |= kMiniaturizableWindowMask;
1659 newMask |= kResizableWindowMask;
1665 if (!
qw.fMainWindow) {
1670 if (!
qw.fMainWindow) {
1694 assert(!
fPimpl->IsRootWindow(
wid) &&
"SetWMSizeHints, called for root window");
1696 const NSUInteger
styleMask = kTitledWindowMask | kClosableWindowMask | kMiniaturizableWindowMask | kResizableWindowMask;
1723 assert(
wid >
fPimpl->GetRootWindowID() &&
"SetWMTransientHint, wid parameter is not a valid window id");
1738 Error(
"SetWMTransientHint",
"window is already transient for other window");
1744 Warning(
"SetWMTransientHint",
"transient and main windows are the same window");
1747#pragma mark - GUI-rendering part.
1753 assert(!
fPimpl->IsRootWindow(
wid) &&
"DrawLineAux, called for root window");
1757 assert(ctx != 0 &&
"DrawLineAux, context is null");
1772 if (!drawable.fIsPixmap)
1801 assert(!
fPimpl->IsRootWindow(
wid) &&
"DrawLine, called for root window");
1807 if (!drawable.fIsPixmap) {
1829 assert(!
fPimpl->IsRootWindow(
wid) &&
"DrawSegmentsAux, called for root window");
1830 assert(
segments != 0 &&
"DrawSegmentsAux, segments parameter is null");
1846 assert(!
fPimpl->IsRootWindow(
wid) &&
"DrawSegments, called for root window");
1848 assert(
segments != 0 &&
"DrawSegments, parameter 'segments' is null");
1854 if (!drawable.fIsPixmap) {
1876 assert(!
fPimpl->IsRootWindow(
wid) &&
"DrawRectangleAux, called for root window");
1880 if (!drawable.fIsPixmap) {
1893 assert(ctx &&
"DrawRectangleAux, context is null");
1915 assert(!
fPimpl->IsRootWindow(
wid) &&
"DrawRectangle, called for root window");
1922 if (!drawable.fIsPixmap) {
1951 assert(!
fPimpl->IsRootWindow(
wid) &&
"FillRectangleAux, called for root window");
1957 if (drawable.fIsPixmap) {
1964 if (!drawable.fIsPixmap) {
1980 "FillRectangleAux, fill_style is FillStippled/FillOpaqueStippled,"
1981 " but no stipple is set in a context");
1990 "FillRectangleAux, fill_style is FillTiled, but not tile is set in a context");
2016 assert(!
fPimpl->IsRootWindow(
wid) &&
"FillRectangle, called for root window");
2022 if (!drawable.fIsPixmap) {
2045 assert(!
fPimpl->IsRootWindow(
wid) &&
"FillPolygonAux, called for root window");
2046 assert(
polygon != 0 &&
"FillPolygonAux, parameter 'polygon' is null");
2047 assert(
nPoints > 0 &&
"FillPolygonAux, number of points must be positive");
2054 if (!drawable.fIsPixmap) {
2070 "FillRectangleAux, fill style is FillStippled/FillOpaqueStippled,"
2071 " but no stipple is set in a context");
2080 "FillRectangleAux, fill_style is FillTiled, but not tile is set in a context");
2094 if (!drawable.fIsPixmap) {
2128 assert(
polygon != 0 &&
"FillPolygon, parameter 'polygon' is null");
2129 assert(
nPoints > 0 &&
"FillPolygon, number of points must be positive");
2135 if (!drawable.fIsPixmap) {
2161 assert(!
fPimpl->IsRootWindow(
src) &&
"CopyAreaAux, src parameter is root window");
2162 assert(!
fPimpl->IsRootWindow(
dst) &&
"CopyAreaAux, dst parameter is root window");
2177 "CopyArea, mask is not a pixmap");
2197 assert(!
fPimpl->IsRootWindow(
src) &&
"CopyArea, src parameter is root window");
2198 assert(!
fPimpl->IsRootWindow(
dst) &&
"CopyArea, dst parameter is root window");
2204 if (!drawable.fIsPixmap) {
2215 if (
fPimpl->GetDrawable(
src).fIsPixmap) {
2231 assert(!
fPimpl->IsRootWindow(
wid) &&
"DrawStringAux, called for root window");
2235 assert(ctx != 0 &&
"DrawStringAux, context is null");
2242 if (!drawable.fIsPixmap) {
2255 CGFloat
textColor[4] = {0., 0., 0., 1.};
2278 assert(!
fPimpl->IsRootWindow(
wid) &&
"DrawString, called for root window");
2285 if (!drawable.fIsPixmap) {
2310 assert(view.
fContext != 0 &&
"ClearAreaAux, view.fContext is null");
2320 CGFloat
rgb[3] = {};
2354 assert(!
fPimpl->IsRootWindow(
wid) &&
"ClearArea, called for root window");
2381#pragma mark - Pixmap management.
2398 Error(
"OpenPixmap",
"QuartzPixmap initialization failed");
2406 assert(!
fPimpl->IsRootWindow(
wid) &&
"ResizePixmap, called for root window");
2409 assert(drawable.fIsPixmap ==
YES &&
"ResizePixmap, invalid drawable");
2425 "SelectPixmap, parameter 'pixmapID' is not a valid id");
2434 "CopyPixmap, fSelectedDrawable is not a valid window id");
2443 "CopyPixmapW, parameter 'pixmapID' is not a valid id");
2447 "CopyPixmap, source is not a pixmap");
2453 if (drawable.fIsPixmap) {
2457 if (window.fBackBuffer) {
2460 Warning(
"CopyPixmapW",
"Operation skipped, since destination"
2461 " window is not double buffered");
2483#pragma mark - Different functions to create pixmap from different data sources. Used by GUI.
2484#pragma mark - These functions implement TVirtualX interface, some of them dupilcate others.
2500 assert(
bitmap != 0 &&
"CreatePixmap, parameter 'bitmap' is null");
2501 assert(
width > 0 &&
"CreatePixmap, parameter 'width' is 0");
2502 assert(
height > 0 &&
"CreatePixmap, parameter 'height' is 0");
2518 Error(
"CreatePixmap",
"QuartzImage initialization failed");
2523 return image.Get().fID;
2530 assert(bits != 0 &&
"CreatePixmapFromData, data parameter is null");
2531 assert(
width != 0 &&
"CreatePixmapFromData, width parameter is 0");
2532 assert(
height != 0 &&
"CreatePixmapFromData, height parameter is 0");
2541 std::swap(
p[0],
p[2]);
2549 Error(
"CreatePixmapFromData",
"QuartzImage initialziation failed");
2554 return image.Get().fID;
2561 assert(std::numeric_limits<unsigned char>::digits == 8 &&
"CreateBitmap, ASImage requires octets");
2572 for (
unsigned i = 0,
j = 0,
e =
width / 8 *
height; i <
e; ++i) {
2586 Error(
"CreateBitmap",
"QuartzImage initialization failed");
2591 return image.Get().fID;
2622 Warning(
"GetColorBits",
"Called for root window");
2624 assert(
x >= 0 &&
"GetColorBits, parameter 'x' is negative");
2625 assert(
y >= 0 &&
"GetColorBits, parameter 'y' is negative");
2626 assert(
w != 0 &&
"GetColorBits, parameter 'w' is 0");
2627 assert(
h != 0 &&
"GetColorBits, parameter 'h' is 0");
2636#pragma mark - XImage emulation.
2652 assert(
wid >
fPimpl->GetRootWindowID() &&
"GetImageSize, parameter 'wid' is invalid");
2655 width = drawable.fWidth;
2656 height = drawable.fHeight;
2670 "PutPixel, parameter 'imageID' is a bad pixmap id");
2671 assert(
x >= 0 &&
"PutPixel, parameter 'x' is negative");
2672 assert(
y >= 0 &&
"PutPixel, parameter 'y' is negative");
2676 unsigned char rgb[3] = {};
2697 "DeleteImage, imageID parameter is not a valid image id");
2701#pragma mark - Mouse related code.
2719 assert(!
fPimpl->IsRootWindow(
wid) &&
"GrabButton, called for 'root' window");
2730 widget.fPassiveGrabOwnerEvents =
NO;
2731 widget.fPassiveGrabButton = -1;
2732 widget.fPassiveGrabEventMask = 0;
2733 widget.fPassiveGrabKeyModifiers = 0;
2747 assert(!
fPimpl->IsRootWindow(
wid) &&
"GrabPointer, called for 'root' window");
2754 fPimpl->fX11EventTranslator.CancelPointerGrab();
2805 assert(!
fPimpl->IsRootWindow(
wid) &&
"GrabKey, called for root window");
2832 return fPimpl->fX11EventTranslator.GetInputFocus();
2839 assert(!
fPimpl->IsRootWindow(
wid) &&
"SetInputFocus, called for root window");
2842 fPimpl->fX11EventTranslator.SetInputFocus(
nil);
2844 fPimpl->fX11EventTranslator.SetInputFocus(
fPimpl->GetWindow(
wid).fContentView);
2860 assert(buf != 0 &&
"LookupString, parameter 'buf' is null");
2861 assert(
length >= 2 &&
"LookupString, parameter 'length' - not enough memory to return null-terminated ASCII string");
2866#pragma mark - Font management.
2878 if (!
xlfd.fFamilyName.length() ||
xlfd.fFamilyName ==
"*")
2879 xlfd.fFamilyName =
"Courier";
2880 if (!
xlfd.fPixelSize)
2881 xlfd.fPixelSize = 11;
2897 fPimpl->fFontManager.UnloadFont(
fs);
2912 return fPimpl->fFontManager.GetTextWidth(font, s,
len);
2965#pragma mark - Color management.
2979 const unsigned red = unsigned(
double(color.
fRed) / 0xFFFF * 0xFF);
2980 const unsigned green = unsigned(
double(color.
fGreen) / 0xFFFF * 0xFF);
2981 const unsigned blue = unsigned(
double(color.
fBlue) / 0xFFFF * 0xFF);
2990 color.
fRed = (color.
fPixel >> 16 & 0xFF) * 0xFFFF / 0xFF;
2991 color.
fGreen = (color.
fPixel >> 8 & 0xFF) * 0xFFFF / 0xFF;
2992 color.
fBlue = (color.
fPixel & 0xFF) * 0xFFFF / 0xFF;
3044#pragma mark - Graphical context management.
3076 assert(
gval != 0 &&
"ChangeGC, gval parameter is null");
3131 for (
unsigned i = 0; i <
nDashes; ++i)
3164#pragma mark - Cursor management.
3186 assert(!
fPimpl->IsRootWindow(
wid) &&
"SetCursor, called for root window");
3189 view.fCurrentCursor =
cursor;
3254#pragma mark - OpenGL management.
3272 typedef std::vector<component_type>::size_type size_type;
3275 std::vector<NSOpenGLPixelFormatAttribute>
attribs;
3308 "CreateOpenGLWindow, parent view must be QuartzView");
3332 Error(
"CreateOpenGLWindow",
"QuartzWindow allocation/initialization"
3333 " failed for a top-level GL widget");
3348 "CreateOpenGLContext, parameter 'windowID' is a root window");
3350 "CreateOpenGLContext, view is not an OpenGL view");
3374 assert(
ctxID > 0 &&
"MakeOpenGLContextCurrent, invalid context id");
3378 Error(
"MakeOpenGLContextCurrent",
"No OpenGL context found for id %d",
int(
ctxID));
3389 if (
glView.fUpdateContext) {
3420 const NSUInteger
styleMask = kTitledWindowMask | kClosableWindowMask |
3421 kMiniaturizableWindowMask | kResizableWindowMask;
3451 Error(
"GetCurrentOpenGLContext",
"The current OpenGL context is null");
3457 Error(
"GetCurrentOpenGLContext",
"The current OpenGL context was"
3458 " not created/registered by TGCocoa");
3466 assert(
ctxID > 0 &&
"FlushOpenGLBuffer, invalid context id");
3498#pragma mark - Off-screen rendering for TPad/TCanvas.
3507 Warning(
"SetDoubleBuffer",
"called with wid == 999");
3521 "SetDoubleBufferON, called, but no correct window was selected before");
3524 if (!window)
return;
3527 "SetDoubleBufferON, selected drawable is a pixmap, can not attach pixmap to pixmap");
3539 "SetDoubleBufferON, called, but no correct window was selected before");
3542 if (!window)
return;
3545 "SetDoubleBufferON, selected drawable is a pixmap, can not attach pixmap to pixmap");
3549 const unsigned currW = window.fWidth;
3550 const unsigned currH = window.fHeight;
3560 window.fBackBuffer =
pixmap.Get();
3563 Error(
"SetDoubleBufferON",
"QuartzPixmap initialization failed");
3580#pragma mark - Event management part.
3600 assert(
fPimpl->fX11EventTranslator.fEventQueue.size() > 0 &&
"NextEvent, event queue is empty");
3602 event =
fPimpl->fX11EventTranslator.fEventQueue.front();
3603 fPimpl->fX11EventTranslator.fEventQueue.pop_front();
3609 return (
Int_t)
fPimpl->fX11EventTranslator.fEventQueue.size();
3616 typedef X11::EventQueue_t::iterator iterator_type;
3618 iterator_type it =
fPimpl->fX11EventTranslator.fEventQueue.begin();
3619 iterator_type
eIt =
fPimpl->fX11EventTranslator.fEventQueue.end();
3621 for (; it !=
eIt; ++it) {
3625 fPimpl->fX11EventTranslator.fEventQueue.erase(it);
3641#pragma mark - "Drag and drop", "Copy and paste", X11 properties.
3648 assert(
name != 0 &&
"InternAtom, parameter 'name' is null");
3666 "SetPrimarySelectionOwner, windowID parameter is a 'root' window");
3668 "SetPrimarySelectionOwner, windowID parameter is not a valid window");
3672 "SetPrimarySelectionOwner, predefined XA_PRIMARY atom was not found");
3691 "SetSelectionOwner, windowID parameter is a 'root' window'");
3693 "SetSelectionOwner, windowID parameter is not a valid window");
3710 "GetPrimarySelectionOwner, predefined XA_PRIMARY atom was not found");
3734 "ConvertPrimarySelection, parameter 'windowID' is root window");
3736 "ConvertPrimarySelection, parameter windowID parameter is not a window id");
3740 "ConvertPrimarySelection, XA_PRIMARY predefined atom not found");
3744 "ConvertPrimarySelection, XA_STRING predefined atom not found");
3763 "ConvertSelection, parameter 'windowID' is root window'");
3765 "ConvertSelection, parameter 'windowID' is not a window id");
3800 "GetProperty, parameter 'windowID' is not a valid window id");
3802 "GetProperty, parameter 'propertyID' is not a valid atom");
3818 Error(
"GetProperty",
"Unknown property %s requested",
atomName.c_str());
3822 unsigned tmpFormat = 0, tmpElements = 0;
3846 "GetPasteBuffer, parameter 'windowID' is root window");
3848 "GetPasteBuffer, parameter 'windowID' is not a valid window");
3850 "GetPasteBuffer, parameter 'propertyID' is not a valid atom");
3858 Error(
"GetPasteBuffer",
"No property %s on a window",
atomString.c_str());
3870 assert(
tmpFormat == 8 &&
"GetPasteBuffer, property has wrong format");
3910 "ChangeProperty, parameter 'windowID' is root window");
3912 "ChangeProperty, parameter 'windowID' is not a valid window id");
3914 "ChangeProperty, parameter 'propertyID' is not a valid atom");
3944 "ChangeProperties, parameter 'windowID' is root window");
3946 "ChangeProperties, parameter 'windowID' is not a valid window id");
3948 "ChangeProperties, parameter 'propertyID' is not a valid atom");
3974 "DeleteProperty, parameter 'windowID' is root window");
3976 "DeleteProperty, parameter 'windowID' is not a valid window");
3978 "DeleteProperty, parameter 'propertyID' is not a valid atom");
3998 "SetDNDAware, parameter 'windowID' is not a valid window id");
4000 "SetDNDAware, parameter 'windowID' is not a window");
4021 assert(
sizeof(
unsigned) == 4 &&
"SetDNDAware, sizeof(unsigned) must be 4");
4027 for (
unsigned i = 0;
typeList[i]; ++i)
4044 "IsDNDAware, windowID parameter is not a window");
4055 ::Warning(
"SetTypeList",
"Not implemented");
4087#pragma mark - Noops.
4221 "Warp, drawable is not a window");
4458#pragma mark - Details and aux. functions.
4463 return &
fPimpl->fX11EventTranslator;
4469 return &
fPimpl->fX11CommandBuffer;
4495 if (!drawable.fIsPixmap) {
4496 Error(
"GetCurrentContext",
"TCanvas/TPad's internal error,"
4497 " selected drawable is not a pixmap!");
4501 return drawable.fContext;
4522 Error(
"MakeProcessForeground",
"TransformProcessType failed with code %d",
int(
res1));
4525#ifdef MAC_OS_X_VERSION_10_9
4531 Error(
"MakeProcessForeground",
"SetFrontProcess failed with code %d",
res2);
4538#ifdef MAC_OS_X_VERSION_10_9
4546 Error(
"MakeProcessForeground",
"GetCurrentProcess failed with code %d", res);
4552 Error(
"MapProcessForeground",
"SetFrontProcess failed with code %d", res);
4586 if (fileName.
Get()) {
Handle_t Region_t
Region handle.
Handle_t WinContext_t
Window drawing context.
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
int Int_t
Signed integer 4 bytes (int)
short Color_t
Color number (short)
unsigned char UChar_t
Unsigned Character 1 byte (unsigned char)
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.
float Float_t
Float 4 bytes (float)
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)
EDrawMode GetDrawModeW(WinContext_t wctxt) override
Returns window draw mode.
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 UpdateWindowW(WinContext_t wctxt, Int_t mode) override
Update specified window.
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 ClearWindowW(WinContext_t wctxt) override
Clear specified window.
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".
void CopyPixmapW(WinContext_t wctxt, Int_t wid, Int_t xpos, Int_t ypos) override
Copy pixmap to specified window.
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".
WinContext_t GetWindowContext(Int_t wid) override
Get window drawing context Should remain valid until window exists.
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".
WinContext_t GetSelectedContext()
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 SetDrawModeW(WinContext_t wctxt, EDrawMode mode) override
Set window draw mode.
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, Color_t attrFillColor)
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.