17#include <Cocoa/Cocoa.h> 
   42   assert(window && 
"initWithWindow:location:, parameter 'window' is nil");
 
   84template<
typename T1, 
typename T2>
 
  100   assert(buf != 0 && 
"MapUnicharToKeySym, parameter 'buf' is null");
 
  169      buf[0] = key <= 0x7e ? key : 0;
 
 
  255      return iter->fSecond;
 
 
  316#pragma mark - Several aux. functions to extract parameters from Cocoa events. 
  332   assert(
theEvent != 
nil && 
"NewX11EventFromCocoaEvent, parameter 'theEvent' is nil");
 
 
  346   assert(
cocoaEvent != 
nil && 
"ConvertEventLocationToROOTXY, parameter 'cocoaEvent' is nil");
 
  347   assert(
eventView != 
nil && 
"ConvertEventLocationToROOTXY, parameter 'eventView' is nil");
 
  348   assert(
rootEvent != 0 && 
"ConvertEventLocationToROOTXY, parameter 'rootEvent' is null");
 
  351      NSLog(
@"Error in ConvertEventLocationToROOTXY, window property" 
  352             " of event is nil, can not convert coordinates correctly");
 
 
  371   assert(
theEvent != 
nil && 
"GetKeyboardModifiersFromCocoaEvent, parameter 'event' is nil");
 
 
  392   assert(
theEvent != 
nil && 
"GetModifiersFromCocoaEvent, parameter 'event' is nil");
 
 
  406#pragma mark - Misc. aux. functions. 
  419         parent = parent.fParentView;
 
 
  459   assert(
view1 != 
nil && 
"FindLowestCommonAncestor, parameter 'view1' is nil");
 
  460   assert(
view2 != 
nil && 
"findLowestCommonAncestor, parameter 'view2' is nil");
 
  461   assert(
lca != 0 && 
"FindLowestCommonAncestor, parameter 'lca' is null");
 
  463   if (!
view1.fParentView)
 
  466   if (!
view2.fParentView)
 
 
  484   assert(
lca != 0 && 
"FindRelation, lca parameter is nil");
 
 
  537#pragma mark - Aux. 'low-level' functions to generate events and call HandleEvent for a root window. 
  548   assert(view != 
nil && 
"SendEnterEvent, parameter 'view' is nil");
 
  550   assert(view.fID != 0 && 
"SendEnterEvent, view.fID is 0");
 
  554#ifdef DEBUG_ROOT_COCOA 
  555      NSLog(
@"SendEnterEvent, ROOT's widget %u was not found", view.fID);
 
 
  583   assert(view != 
nil && 
"SendLeaveEvent, parameter 'view' is nil");
 
  585   assert(view.fID != 0 && 
"SendLeaveEvent, view.fID is 0");
 
  589#ifdef DEBUG_ROOT_COCOA 
  590      NSLog(
@"SendLeaveEvent, ROOT's widget %u was not found", view.fID);
 
 
  614   assert(view != 
nil && 
"SendPointerMotionEvent, parameter 'view' is nil");
 
  616   assert(view.fID != 0 && 
"SendPointerMotionEvent, view.fID is 0");
 
  620#ifdef DEBUG_ROOT_COCOA 
  621      NSLog(
@"SendPointerMotionEvent, ROOT's widget %u was not found", view.fID);
 
 
  645   assert(view != 
nil && 
"SendButtonPressEvent, parameter 'view' is nil");
 
  647   assert(view.fID != 0 && 
"SendButtonPressEvent, view.fID is 0");
 
  651#ifdef DEBUG_ROOT_COCOA 
  652      NSLog(
@"SendButtonpressEvent, ROOT's widget %u was not found", view.fID);
 
 
  694   assert(view != 
nil && 
"SendButtonReleaseEvent, parameter 'view' is nil");
 
  696   assert(view.fID != 0 && 
"SendButtonReleaseEvent, view.fID is 0");
 
  700#ifdef DEBUG_ROOT_COCOA 
  701      NSLog(
@"SendButtonReleaseEvent, ROOT's widget %u was not found", view.fID);
 
 
  720   assert(view != 
nil && 
"SendKeyPressEvent, parameter 'view' is nil");
 
  722   assert(view.fID != 0 && 
"SendKeyPressEvent, view.fID is 0");
 
  726#ifdef DEBUG_ROOT_COCOA 
  727      NSLog(
@"SendKeyPressEvent, ROOT's widget %u was not found", view.fID);
 
  744   const NSPoint 
viewPoint = [view convertPoint : windowPoint fromView : nil];
 
 
  764   assert(view != 
nil && 
"SendKeyReleaseEvent, parameter 'view' is nil");
 
  766   assert(view.fID != 0 && 
"SendKeyReleaseEvent, view.fID is 0");
 
  770#ifdef DEBUG_ROOT_COCOA 
  771      NSLog(
@"SendKeyPressEvent, ROOT's widget %u was not found", view.fID);
 
  787   const NSPoint 
viewPoint = [view convertPoint : windowPoint fromView : nil];
 
 
  807   assert(view != 
nil && 
"SendFocusInEvent, parameter 'view' is nil");
 
  811#ifdef DEBUG_ROOT_COCOA 
  812      NSLog(
@"SendFocusInEvent, ROOT's widget %u was not found", view.fID);
 
 
  828   assert(view != 
nil && 
"SendFocusOutEvent, parameter 'view' is nil");
 
  832#ifdef DEBUG_ROOT_COCOA 
  833      NSLog(
@"SendFocusOutEvent, ROOT's widget %u was not found", view.fID);
 
 
  846#pragma mark - Aux. functions to send events to view's branch. 
  853   assert(from != 
nil && 
"SendEnterEventRange, 'from' parameter is nil");
 
  854   assert(to != 
nil && 
"SendEnterEventRange, 'to' parameter is nil");
 
  860      from = from.fParentView;
 
 
  869   assert(from != 
nil && 
"SendEnterEventClosedRange, 'from' parameter is nil");
 
  870   assert(to != 
nil && 
"SendEnterEventClosedRange, 'to' parameter is nil");
 
 
  883   assert(from != 
nil && 
"SendLeaveEventRange, 'from' parameter is nil");
 
  884   assert(to != 
nil && 
"SendLeaveEventRange, 'to' parameter is nil");
 
  890      from = from.fParentView;
 
 
  899   assert(from != 
nil && 
"SendLeaveEventClosedRange, 'from' parameter is nil");
 
  900   assert(to != 
nil && 
"SendLeaveEventClosedRange, 'to' parameter is nil");
 
 
  908#pragma mark - Top-level crossing event generators. 
  924   assert(parent != 
nil && 
"GenerateCrossingEventChildToParent, parameter 'parent' is nil");
 
  925   assert(
child != 
nil && 
"GenerateCrossingEventChildToParent, parameter 'child' is nil");
 
  926   assert(
theEvent != 
nil && 
"GenerateCrossingEventChildToParent, parameter 'event' is nil");
 
  928          "GenerateCrossingEventChildToParent, parameter 'child' must have QuartzView* parent");
 
 
  955   assert(parent != 
nil && 
"GenerateCrossingEventParentToChild, parameter 'parent' is nil");
 
  956   assert(
child != 
nil && 
"GenerateCrossingEventParentToChild, parameter 'child' is nil");
 
  957   assert(
theEvent != 
nil && 
"GenerateCrossingEventParentToChild, parameter 'event' is nil");
 
  959          "GenerateCrossingEventParentToChild, parameter 'child' must have QuartzView* parent");
 
 
  984   assert(
child1 != 
nil && 
"GenerateCrossingEventFromChild1ToChild2, parameter 'child1' is nil");
 
  985   assert(
child2 != 
nil && 
"GenerateCrossingEventFromChild1ToChild2, child2 parameter is nil");
 
  986   assert(
theEvent != 
nil && 
"GenerateCrossingEventFromChild1ToChild2, theEvent parameter is nil");
 
 
 1092   assert(
theEvent != 
nil && 
"GenerateCrossingEventForGrabView, parameter 'event' is nil");
 
 1093   assert(
grabView != 
nil && 
"GenerateCrossingEventForGrabView, parameter 'grabView' is nil");
 
 1095          "GenerateCrossingEventForGrabView, both 'toView' and 'fromView' parameters are nil");
 
 
 
 1136                     : fViewUnderPointer(
nil),
 
 1140                       fButtonGrabView(
nil),
 
 
 1151   assert(view != 
nil && 
"GenerateConfigureNotifyEvent, parameter 'view' is nil");
 
 
 1176   assert(view != 
nil && 
"GenerateExposeEvent, parameter 'view' is nil");
 
 1187   assert(window != 0 && 
"GenerateExposeEvent, window was not found");
 
 
 1204   assert(
theEvent && 
"GenerateCrossingEventNoGrab, parameter 'theEvent' is nil");
 
 
 1215   assert(
theEvent != 
nil && 
"GenerateCrossingEventActiveGrab, parameter 'theEvent' is nil");
 
 
 1246   assert(
theEvent != 
nil && 
"GeneratePointerMotionEvent, parameter 'theEvent' is nil");
 
 
 1260   assert(
eventView != 
nil && 
"GenerateButtonPressEvent, parameter 'eventView' is nil");
 
 1261   assert(
theEvent != 
nil && 
"GenerateButtonpressEvent, parameter 'theEvent' is nil");
 
 
 1273   assert(
eventView != 
nil && 
"GenerateButtonReleaseEvent, parameter 'eventView' is nil");
 
 1274   assert(
theEvent != 
nil && 
"GenerateButtonReleaseEvent, parameter 'theEvent' is nil");
 
 
 1288   assert(
theEvent != 
nil && 
"GenerateKeyPressEvent, parameter 'theEvent' is nil");
 
 
 1304   assert(
theEvent != 
nil && 
"GenerateKeyReleaseEvent, parameter 'theEvent' is nil");
 
 
 1363      const NSPoint location = [[
grabView window] mouseLocationOutsideOfEventStream];
 
 1365                                                        location : location]);
 
 1368         NSLog(
@"EventTranslator::SetPointerGrab, crossing event initialization failed");
 
 1376   [
fButtonGrabView activateGrab : eventMask ownerEvents : fOwnerEvents];
 
 
 1389      const NSPoint location = [[
candidateView window] mouseLocationOutsideOfEventStream];
 
 1391                                                        location : location ]);
 
 1395         NSLog(
@"EventTranslator::CancelPointerGrab, crossing event initialization failed");
 
 1408                                                         location : location ]);
 
 1412         NSLog(
@"EventTranslator::CancelPointerGrab, crossing event initialization failed");
 
 
 1462      for (; 
v; 
v = 
v.fParentView) {
 
 1481         if (view.fID == 
winID) {
 
 1490         if (view.fID == 
winID) {
 
 1491            NSPoint location = {};
 
 1498                                                               location : location]);
 
 1501               NSLog(
@"EventTranslator::CheckUnmappedView, crossing event initialization failed");
 
 
 1521   assert(
theEvent != 
nil && 
"GeneratePointerMotionEventNoGrab, parameter 'theEvent' is nil");
 
 
 1548   assert(
theEvent != 
nil && 
"GeneratePointerMotionEventActiveGrab, parameter 'theEvent' is nil");
 
 
 1582   assert(view != 
nil && 
"GenerateButtonPressEventNoGrab, parameter 'view' is nil");
 
 1583   assert(
theEvent != 
nil && 
"GenerateButtonPressEventNoGrab, parameter 'theEvent' is nil");
 
 
 1615   assert(
theEvent != 
nil && 
"GenerateButtonPressEventActiveGrab, parameter 'theEvent' is nil");
 
 
 1647   assert(
eventView != 
nil && 
"GenerateButtonReleaseEventNoGrab, parameter 'eventView' is nil");
 
 1648   assert(
theEvent != 
nil && 
"GenerateButtonReleaseEventNoGrabm parameter 'theEvent' is nil");
 
 
 1660   assert(
eventView != 
nil && 
"GenerateButtonReleaseEventActiveGrab, parameter 'eventView' is nil");
 
 1661   assert(
theEvent != 
nil && 
"GenerateButtonReleaseEventActiveGrab, parameter 'theEvent' is nil");
 
 
 1701   assert(
eventView != 
nil && 
"GenerateKeyPressEventNoGrab, parameter 'eventView' is nil");
 
 1702   assert(
theEvent != 
nil && 
"GenerateKeyPressEventNoGrab, parameter 'theEvent' is nil");
 
 
 1724   assert(
eventView != 
nil && 
"GenerateKeyEventActiveGrab, parameter 'eventView' is nil");
 
 1725   assert(
theEvent != 
nil && 
"GenerateKeyEventActiveGrab, parameter 'theEvent' is nil");
 
 
 1757   assert(
eventView != 
nil && 
"GenerateKeyReleaseEventNoGrab, parameter 'eventView' is nil");
 
 1758   assert(
theEvent != 
nil && 
"GenerateKeyReleaseEventNoGrab, parameter 'theEvent' is nil");
 
 
 1775   assert(view != 
nil && 
"GenerateKeyEventForView, parameter 'view' is nil");
 
 1776   assert(
theEvent != 
nil && 
"GenerateKeyEventForView, parameter 'theEvent' is nil");
 
 1778          "GenerateKeyEvenForView, event's type must be keydown or keyup");
 
 
 1815      if (view.fPassiveGrabButton == 
kAnyButton || view.fPassiveGrabButton == 
btn) {
 
 
const Mask_t kButtonMotionMask
 
const Mask_t kFocusChangeMask
 
const Mask_t kKeyLockMask
 
const Mask_t kButtonPressMask
 
const Mask_t kKeyMod1Mask
typically the Alt key
 
EXMagic
Some magic X notify modes used in TGTextEntry widget.
 
Handle_t Window_t
Window handle.
 
const Mask_t kKeyReleaseMask
 
const Mask_t kAnyModifier
 
const Mask_t kKeyPressMask
 
ULong_t Time_t
Event time.
 
const Mask_t kButton1Mask
 
const Mask_t kPointerMotionMask
 
const Mask_t kKeyShiftMask
 
const Mask_t kKeyControlMask
 
const Mask_t kKeyMod2Mask
typically mod on numeric keys
 
const Mask_t kButton3Mask
 
const Mask_t kLeaveWindowMask
 
const Mask_t kButton2Mask
 
const Mask_t kButtonReleaseMask
 
const Mask_t kEnterWindowMask
 
EMouseButton
Button names.
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
Bool_t operator<(const TDatime &d1, const TDatime &d2)
 
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 mode
 
DerivedType * Get() const
 
void CheckUnmappedView(Window_t winID)
 
void FindKeyGrabView(NSView< X11Window > *eventView, NSEvent *theEvent)
 
NSView< X11Window > * fButtonGrabView
 
void GenerateFocusChangeEvent(NSView< X11Window > *eventView)
 
void FindButtonGrab(NSView< X11Window > *fromView, NSEvent *theEvent, EMouseButton btn)
 
void GenerateExposeEvent(NSView< X11Window > *view, const NSRect &exposedRect)
 
NSView< X11Window > * fFocusView
 
void GenerateKeyEventActiveGrab(NSView< X11Window > *eventView, NSEvent *theEvent)
 
void GenerateConfigureNotifyEvent(NSView< X11Window > *view, const NSRect &newFrame)
 
void GenerateCrossingEvent(NSEvent *theEvent)
 
void GenerateDestroyNotify(unsigned)
 
void GenerateKeyEventForView(NSView< X11Window > *view, NSEvent *theEvent)
 
void GenerateButtonPressEventActiveGrab(NSView< X11Window > *view, NSEvent *theEvent, EMouseButton btn)
 
void GeneratePointerMotionEventNoGrab(NSEvent *theEvent)
 
void GenerateCrossingEventActiveGrab(NSEvent *theEvent)
 
NSView< X11Window > * fKeyGrabView
 
void GenerateButtonReleaseEventActiveGrab(NSView< X11Window > *eventView, NSEvent *theEvent, EMouseButton btn)
 
unsigned GetInputFocus() const
 
void GenerateButtonReleaseEventNoGrab(NSView< X11Window > *eventView, NSEvent *theEvent, EMouseButton btn)
 
bool HasPointerGrab() const
 
void GenerateKeyReleaseEvent(NSView< X11Window > *eventView, NSEvent *theEvent)
 
void SetPointerGrab(NSView< X11Window > *grabView, unsigned eventMask, bool ownerEvents)
 
EMouseButton fImplicitGrabButton
 
void GenerateKeyPressEvent(NSView< X11Window > *eventView, NSEvent *theEvent)
 
void GenerateKeyPressEventNoGrab(NSView< X11Window > *eventView, NSEvent *theEvent)
 
void GenerateKeyReleaseEventNoGrab(NSView< X11Window > *eventView, NSEvent *theEvent)
 
void GenerateCrossingEventNoGrab(NSEvent *theEvent)
 
void GeneratePointerMotionEventActiveGrab(NSEvent *theEvent)
 
PointerGrab fPointerGrabType
 
void GenerateButtonPressEvent(NSView< X11Window > *eventView, NSEvent *theEvent, EMouseButton btn)
 
void GeneratePointerMotionEvent(NSEvent *theEvent)
 
NSView< X11Window > * fViewUnderPointer
 
void SetInputFocus(NSView< X11Window > *focusView)
 
void GenerateButtonPressEventNoGrab(NSView< X11Window > *view, NSEvent *theEvent, EMouseButton btn)
 
void GenerateButtonReleaseEvent(NSView< X11Window > *eventView, NSEvent *theEvent, EMouseButton btn)
 
ROOT GUI Window base class.
 
virtual Bool_t HandleEvent(Event_t *)
 
NSPoint fLocationInWindow
 
const NSUInteger kCommandKeyMask
 
const NSUInteger kDeviceIndependentModifierFlagsMask
 
const NSUInteger kAlternateKeyMask
 
const NSUInteger kControlKeyMask
 
const NSUInteger kAlphaShiftKeyMask
 
const NSUInteger kShiftKeyMask
 
const NSEventType kKeyDown
 
Ancestry FindLowestCommonAncestor(NSView< X11Window > *view1, NSView< X11Window > *view2, NSView< X11Window > **lca)
 
void GenerateCrossingEventParentToChild(EventQueue_t &queue, NSView< X11Window > *parent, NSView< X11Window > *child, NSEvent *theEvent, EXMagic detail)
 
void ConvertEventLocationToROOTXY(NSEvent *cocoaEvent, NSView< X11Window > *eventView, Event_t *rootEvent)
 
void SendEnterEventClosedRange(EventQueue_t &queue, NSView< X11Window > *from, NSView< X11Window > *to, NSEvent *theEvent, EXMagic mode)
 
bool IsParent(NSView< X11Window > *testParent, NSView< X11Window > *testChild)
 
void SendLeaveEvent(EventQueue_t &queue, NSView< X11Window > *view, NSEvent *theEvent, EXMagic detail)
 
void SendKeyReleaseEvent(EventQueue_t &queue, NSView< X11Window > *view, NSView< X11Window > *childView, NSEvent *theEvent, NSPoint windowPoint)
 
unsigned GetModifiersFromCocoaEvent(NSEvent *theEvent)
 
void GenerateCrossingEventForGrabView(EventQueue_t &queue, NSView< X11Window > *fromView, NSView< X11Window > *toView, NSView< X11Window > *grabView, Mask_t grabEventMask, NSEvent *theEvent)
 
void SendFocusInEvent(EventQueue_t &queue, NSView< X11Window > *view, EXMagic mode)
 
Ancestry FindRelation(NSView< X11Window > *view1, NSView< X11Window > *view2, NSView< X11Window > **lca)
 
void GenerateCrossingEventChildToParent(EventQueue_t &queue, NSView< X11Window > *parent, NSView< X11Window > *child, NSEvent *theEvent, EXMagic detail)
 
Time_t TimeForCocoaEvent(NSEvent *theEvent)
 
void SendFocusOutEvent(EventQueue_t &queue, NSView< X11Window > *view, EXMagic mode)
 
NSView< X11Window > * FindViewToPropagateEvent(NSView< X11Window > *viewFrom, Mask_t checkMask)
 
void SendPointerMotionEvent(EventQueue_t &queue, NSView< X11Window > *view, NSEvent *theEvent)
 
void SendKeyPressEvent(EventQueue_t &queue, NSView< X11Window > *view, NSView< X11Window > *childView, NSEvent *theEvent, NSPoint windowPoint)
 
void SendEnterEventRange(EventQueue_t &queue, NSView< X11Window > *from, NSView< X11Window > *to, NSEvent *theEvent, EXMagic mode)
 
void SendLeaveEventClosedRange(EventQueue_t &queue, NSView< X11Window > *from, NSView< X11Window > *to, NSEvent *theEvent, EXMagic mode)
 
void SendButtonReleaseEvent(EventQueue_t &queue, NSView< X11Window > *view, NSEvent *theEvent, EMouseButton btn)
 
void GenerateCrossingEventFromChild1ToChild2(EventQueue_t &queue, NSView< X11Window > *child1, NSView< X11Window > *child2, NSView< X11Window > *ancestor, NSEvent *theEvent, EXMagic detail)
 
void SendLeaveEventRange(EventQueue_t &queue, NSView< X11Window > *from, NSView< X11Window > *to, NSEvent *theEvent, EXMagic mode)
 
void GenerateCrossingEvents(EventQueue_t &queue, NSView< X11Window > *fromView, NSView< X11Window > *toView, NSEvent *theEvent, EXMagic detail)
 
void SendButtonPressEvent(EventQueue_t &queue, NSView< X11Window > *view, NSEvent *theEvent, EMouseButton btn)
 
bool IsInBranch(NSView< X11Window > *parent, NSView< X11Window > *child, NSView< X11Window > *testView)
 
Event_t NewX11EventFromCocoaEvent(unsigned windowID, NSEvent *theEvent)
 
void SendEnterEvent(EventQueue_t &queue, NSView< X11Window > *view, NSEvent *theEvent, EXMagic detail)
 
unsigned GetKeyboardModifiersFromCocoaEvent(NSEvent *theEvent)
 
Int_t MapKeySymToKeyCode(Int_t keySym)
 
NSPoint ConvertPointFromScreenToBase(NSPoint screenPoint, NSWindow *window)
 
int GlobalYCocoaToROOT(CGFloat yCocoa)
 
std::deque< Event_t > EventQueue_t
 
void MapUnicharToKeySym(unichar key, char *buf, Int_t len, UInt_t &rootKeySym)
 
NSPoint ConvertPointFromBaseToScreen(NSWindow *window, NSPoint windowPoint)
 
NSPoint TranslateToScreen(NSView< X11Window > *from, NSPoint point)
 
int GlobalXCocoaToROOT(CGFloat xCocoa)
 
NSView< X11Window > * FindViewForPointerEvent(NSEvent *pointerEvent)
 
NSView< X11Window > * FindViewUnderPointer()
 
UInt_t GetKeyboardModifiers()
 
QuartzWindow * FindWindowUnderPointer()
 
NSUInteger GetCocoaKeyModifiersFromROOTKeyModifiers(UInt_t rootKeyModifiers)
 
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...