57 {
return fCanvas->HandleContainerButton(ev); }
59 {
return fCanvas->HandleContainerDoubleClick(ev); }
62 return fCanvas->HandleContainerConfigure(ev); }
64 {
return fCanvas->HandleContainerKey(ev); }
66 {
return fCanvas->HandleContainerMotion(ev); }
68 {
return fCanvas->HandleContainerExpose(ev); }
70 {
return fCanvas->HandleContainerCrossing(ev); }
116 if (
gStyle->GetCanvasPreferGL()) {
120 if (gVirtualX->InheritsFrom(
"TGX11"))
122 else if (gVirtualX->InheritsFrom(
"TGCocoa"))
125 TPluginHandler *ph = gROOT->GetPluginManager()->FindHandler(
"TGLManager", x);
127 if (ph && ph->LoadPlugin() != -1) {
128 if (!ph->ExecPlugin(0)) {
129 Warning(
"CreateCanvas",
130 "Cannot load GL, will use default canvas imp instead\n");
147 SetContainer(fCanvasContainer);
155 fDNDTypeList =
new Atom_t[3];
159 gVirtualX->SetDNDAware(fId, fDNDTypeList);
163 fCanvas->SetBorderMode(0);
198 Int_t button =
event->fCode;
242 Int_t button =
event->fCode;
274 static UInt_t previous_keysym = 0;
282 gVirtualX->LookupString(event, str,
sizeof(str), keysym);
292 gROOT->SetInterrupt();
295 if (keysym > 0x1011 && keysym < 0x1016) {
298 Int_t mx, my, tx, ty;
300 gVirtualX->QueryPointer(wid, dum1, dum2, mx, my, mx, my, mask);
303 mx, my, tx, ty, dum1);
307 if ((previous_keysym == keysym) && (previous_event ==
kGKeyPress)) {
326 previous_keysym = keysym;
334 gVirtualX->LookupString(event, str,
sizeof(str), keysym);
336 if (keysym > 0x1011 && keysym < 0x1016) {
339 Int_t mx, my, tx, ty;
341 gVirtualX->QueryPointer(wid, dum1, dum2, mx, my, mx, my, mask);
360 mx, my, tx, ty, dum1);
362 previous_keysym = keysym;
366 previous_event =
event->fType;
436 if (data->fDataType == rootObj) {
440 if (!obj)
return kTRUE;
444 if (!
object)
return kTRUE;
445 if (
object->InheritsFrom(
"TGraph"))
447 else if (
object->InheritsFrom(
"TImage"))
449 else if (
object->IsA()->GetMethodAllAny(
"Draw"))
460 else if (data->fDataType == uriObj) {
461 TString sfname((
char *)data->fData);
462 if (sfname.
Length() > 7) {
493 Int_t px = 0, py = 0;
498 xroot, yroot, px, py, wtarget);
503 gROOT->SetSelectedPad(pad);
518 for (
int i = 0; typelist[i] !=
kNone; ++i) {
519 if (typelist[i] == rootObj)
521 if (typelist[i] == uriObj)
545 out <<
"\n // embedded canvas\n";
546 out <<
" TRootEmbeddedCanvas *" <<
GetName() <<
" = new TRootEmbeddedCanvas(0" <<
"," <<
fParent->GetName() <<
","
549 if (option && strstr(option,
"keep_names"))
550 out <<
" " <<
GetName() <<
"->SetName(\"" <<
GetName() <<
"\");\n";
552 out <<
" Int_t w" <<
GetName() <<
" = " <<
GetName() <<
"->GetCanvasWindowId();\n";
557 out <<
" TCanvas *" << cname <<
" = new TCanvas(\"" << cname <<
"\", 10, 10, w" <<
GetName() <<
");\n";
558 out <<
" " <<
GetName() <<
"->AdoptCanvas(" << cname <<
");\n";
const Mask_t kButtonPressMask
const Mask_t kExposureMask
const Mask_t kKeyReleaseMask
const Mask_t kAnyModifier
const Mask_t kKeyPressMask
const Mask_t kPointerMotionMask
const Mask_t kKeyShiftMask
const Mask_t kLeaveWindowMask
const Mask_t kStructureNotifyMask
const Mask_t kButtonReleaseMask
const Mask_t kEnterWindowMask
ULong_t Pixel_t
Pixel value.
Handle_t Window_t
Window handle.
int Int_t
Signed integer 4 bytes (int).
unsigned long ULongptr_t
Unsigned integer large enough to hold a pointer (platform-dependent).
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int).
bool Bool_t
Boolean (0=false, 1=true) (bool).
const char Option_t
Option string (const char).
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
The concrete implementation of TBuffer for writing/reading to/from a ROOT file or socket.
void * ReadObjectAny(const TClass *cast) override
Read object from I/O buffer.
void SetReadMode()
Set buffer in read mode.
TMethod * GetMethodAllAny(const char *method)
Return pointer to method without looking at parameters.
Drag and drop data container.
TGViewPort * GetViewPort() const
TGCanvas(const TGCanvas &)=delete
TGCompositeFrame(const TGCompositeFrame &)=delete
void AddInput(UInt_t emask)
Add events specified in the emask to the events the frame should handle.
virtual Bool_t HandleConfigureNotify(Event_t *event)
This event is generated when the frame is resized.
UInt_t fHeight
frame height
TString SaveCtorArgs(std::ostream &out, UInt_t dflt_options=kChildFrame, Bool_t check_white_pixel=kFALSE)
Return options and custom color as constructor args Used in the SavePrimitive methods,...
Handle_t fId
X11/Win32 Window identifier.
const TGWindow * fParent
Parent window.
virtual Int_t MustCleanup() const
@ kEditDisableLayout
window layout cannot be edited
@ kEditDisableGrab
window grab cannot be edited
const char * GetName() const override
Return unique name, used in SavePrimitive methods.
UInt_t fEditDisabled
flags used for "guibuilding"
An abstract interface to image processing library.
virtual void SetEditable(Bool_t=kTRUE)
static TImage * Open(const char *file, EImageFileTypes type=kUnknown)
Open a specified image file.
Mother of all ROOT objects.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
virtual TClass * IsA() const
virtual void Draw(Option_t *option="")
Default Draw method for all objects.
The most important graphics class in the ROOT system.
void Update() override
Update pad.
TVirtualPad * cd(Int_t subpadnumber=0) override
Set Current pad.
This class creates a TGCanvas in which a TCanvas is created.
Atom_t HandleDNDEnter(Atom_t *typelist) override
Handle drag enter events.
Bool_t HandleDNDDrop(TDNDData *data) override
Handle drop events.
Bool_t fAutoFit
canvas container keeps same size as canvas
virtual Bool_t HandleContainerCrossing(Event_t *ev)
Handle enter/leave events. Only leave is activated at the moment.
virtual Bool_t HandleContainerConfigure(Event_t *ev)
Handle configure (i.e. resize) event.
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save an embedded canvas as a C++ statement(s) on output stream out.
Int_t fCWinId
window id used by embedded TCanvas
Bool_t HandleDNDLeave() override
Handle drag leave events.
TCanvas * fCanvas
pointer to TCanvas
void AdoptCanvas(TCanvas *c)
Canvas c is adopted from this embedded canvas.
virtual Bool_t HandleContainerButton(Event_t *ev)
Handle mouse button events in the canvas container.
virtual Bool_t HandleContainerDoubleClick(Event_t *ev)
Handle mouse button double click events in the canvas container.
TRootEmbeddedCanvas(const TRootEmbeddedCanvas &)=delete
TCanvas * GetCanvas() const
Atom_t HandleDNDPosition(Int_t, Int_t, Atom_t action, Int_t, Int_t) override
Handle dragging position events.
virtual Bool_t HandleContainerMotion(Event_t *ev)
Handle mouse motion event in the canvas container.
Int_t fButton
currently pressed button
virtual Bool_t HandleContainerKey(Event_t *ev)
Handle keyboard events in the canvas container.
~TRootEmbeddedCanvas() override
Delete embedded ROOT canvas.
Atom_t * fDNDTypeList
handles DND types
TRootEmbeddedContainer * fCanvasContainer
container in canvas widget
virtual Bool_t HandleContainerExpose(Event_t *ev)
Handle expose events.
Utility class used by TRootEmbeddedCanvas.
Bool_t HandleCrossing(Event_t *ev) override
Bool_t HandleDoubleClick(Event_t *ev) override
Bool_t HandleButton(Event_t *ev) override
TRootEmbeddedCanvas * fCanvas
Bool_t HandleConfigureNotify(Event_t *ev) override
This event is generated when the frame is resized.
Bool_t HandleKey(Event_t *ev) override
Bool_t HandleExpose(Event_t *ev) override
Bool_t HandleMotion(Event_t *ev) override
void SetEditable(Bool_t) override
Switch ON/OFF edit mode.
TRootEmbeddedContainer(TRootEmbeddedCanvas *c, Window_t id, const TGWindow *parent)
Create a canvas container.
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
const char * Data() const
TString & ReplaceAll(const TString &s1, const TString &s2)
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
This class represents a WWW compatible URL.
const char * GetFile() const
EGEventType fType
of event (see EGEventType)
Int_t fCount
if non-zero, at least this many more exposes
UInt_t fState
key or button mask
UInt_t fCode
key or button code