13 #ifndef ROOT_CocoaPrivate
14 #define ROOT_CocoaPrivate
26 @protocol X11Drawable;
29 @class ROOTApplicationDelegate;
30 @class NSOpenGLContext;
50 friend class ::TGCocoa;
51 friend class ::TGQuartz;
52 friend class X11::CommandBuffer;
58 Window_t GetRootWindowID()
const;
59 bool IsRootWindow(Window_t windowID)
const;
61 CocoaPrivate(
const CocoaPrivate &rhs);
62 CocoaPrivate &operator = (
const CocoaPrivate &rhs);
64 Drawable_t RegisterDrawable(NSObject *nsObj);
65 NSObject<X11Drawable> *GetDrawable(Drawable_t drawableD)
const;
66 NSObject<X11Window> *GetWindow(Window_t windowID)
const;
67 void DeleteDrawable(Drawable_t drawableID);
69 Handle_t RegisterGLContext(NSOpenGLContext *glContext);
70 void DeleteGLContext(Handle_t contextID);
71 NSOpenGLContext *GetGLContextForHandle(Handle_t contextID);
72 Handle_t GetHandleForGLContext(NSOpenGLContext *glContext);
74 void SetFakeGLWindow(QuartzWindow *fakeWin);
75 QuartzWindow *GetFakeGLWindow();
79 void ReplaceDrawable(Drawable_t drawableID, NSObject *nsObj);
83 X11::ColorParser fX11ColorParser;
86 X11::EventTranslator fX11EventTranslator;
88 X11::CommandBuffer fX11CommandBuffer;
90 FontCache fFontManager;
93 Drawable_t fCurrentDrawableID;
95 std::vector<Drawable_t> fFreeDrawableIDs;
97 std::map<unsigned, Util::NSStrongReference<NSObject<X11Drawable> > > fDrawables;
98 typedef std::map<unsigned, Util::NSStrongReference<NSObject<X11Drawable> > >::iterator drawable_iterator;
99 typedef std::map<unsigned, Util::NSStrongReference<NSObject<X11Drawable> > >::const_iterator const_drawable_iterator;
101 typedef std::map<Handle_t, Util::NSStrongReference<NSOpenGLContext> > handle2ctx_map;
102 typedef std::map<NSOpenGLContext *, Handle_t> ctx2handle_map;
104 handle2ctx_map fHandleToGLContext;
105 ctx2handle_map fGLContextToHandle;
107 Handle_t fFreeGLContextID;
108 Util::NSStrongReference<QuartzWindow> fFakeGLWindow;
110 Util::NSScopeGuard<ROOTApplicationDelegate> fApplicationDelegate;