47#include "RConfigure.h"
70 gROOT->GetListOfCleanups()->Add(
this);
80 gROOT->GetListOfCleanups()->Remove(
this);
109 int xx, yy, topx = 0, topy = 0;
126 parent =
dynamic_cast<TGWindow *
>(pad->GetCanvasImp());
128 parent =
dynamic_cast<TGWindow *
>(pad->GetCanvasImp());
130 parent =
dynamic_cast<TGWindow *
>(browser->GetBrowserImp());
157 if ((opt_ptr=cmd.
Index(
"*MENU={")) !=
kNPOS ||
163 option = cmd(start,end - start);
169 while((obj = iter())) {
174 if (tend ==
kNPOS)
continue;
175 hierarchy = token(tstart,tend - tstart);
187 last_component = obj->
GetName();
211 last_component = obj->
GetName();
232 strcmp(
ptr2->GetName(), s)<0 )) { }
252 TList *menuItemList =
object->IsA()->GetMenuList();
255 TIter nextItem(menuItemList);
272 object->IsA()->GetMenuItems(methodList);
276 TIter next(methodList);
279 while ((method = (
TMethod*) next())) {
280 if (classPtr != method->
GetClass()) {
294 if (needSep && currentMenu ==
this) {
301 if ((
m = method->FindDataMember())) {
304 currentMenu =
FindHierarchy(method->GetCommentString(),last_component);
306 if (
m->GetterMethod()) {
308 if (needSep && currentMenu ==
this) {
312 if (last_component.
Length()) {
313 currentMenu->
AddPopup(last_component,
r);
315 currentMenu->
AddPopup(method->GetName(),
r);
318 TIter nxt(
m->GetOptions());
329 r->AddEntry(
name, togglelist++, t);
331 r->CheckEntry(togglelist-1);
334 if (needSep && currentMenu ==
this) {
338 AddEntrySorted(currentMenu,last_component.
Length() ? last_component.
Data() : method->GetName(), entry++, method,0,currentMenu !=
this);
350 currentMenu =
FindHierarchy(method->GetCommentString(),last_component);
351 if (needSep && currentMenu ==
this) {
355 AddEntrySorted(currentMenu,last_component.
Length() ? last_component.
Data() : method->GetName(), toggle++, t,0,currentMenu !=
this);
369 const char* menuItemTitle = menuItem->
GetTitle();
379 if (strlen(menuItemTitle)==0) menuItemTitle = method->
GetName();
380 AddEntry(menuItemTitle, toggle++, t);
384 if (strlen(menuItemTitle)==0) menuItemTitle = menuItem->
GetFunctionName();
385 AddEntry(menuItemTitle,userfunction++,menuItem);
413 if (!function)
return;
418 else selfobjpos = -1;
426 if (
c->GetCanvasImp()->IsA()->InheritsFrom(TGFrame::Class())) {
444 TIter next(function->GetListOfMethodArgs());
449 if (selfobjpos != argpos) {
453 const char *charstar =
"char*";
461 Warning(
"Dialog",
"data type is not basic type, assuming (int)");
462 strlcpy(basictype,
"int", 32);
465 if (strchr(argname,
'*')) {
466 strlcat(basictype,
"*",32);
467 if (!strncmp(
type,
"char", 4) || !strncmp(
type,
"Option_t", 8))
469 else if (strstr(argname,
"[default:")) {
478 if (
m &&
object &&
m->GetterMethod(
object->IsA())) {
484 if (!strncmp(basictype,
"char*", 5)) {
487 strlcpy(val, tdefval,
sizeof(val));
488 }
else if (!strncmp(basictype,
"float", 5) ||
489 !strncmp(basictype,
"double", 6)) {
491 m->GetterMethod()->Execute(
object,
"", ddefval);
493 }
else if (!strncmp(basictype,
"char", 4) ||
494 !strncmp(basictype,
"bool", 4) ||
495 !strncmp(basictype,
"int", 3) ||
496 !strncmp(basictype,
"long", 4) ||
497 !strncmp(basictype,
"short", 5)) {
499 m->GetterMethod()->Execute(
object,
"", ldefval);
500 snprintf(val, 256,
"%zi", (
size_t)ldefval);
504 if (
m->GetOptions()) {
505 Warning(
"Dialog",
"option menu not yet implemented");
507 TMotifOptionMenu *o=
new TMotifOptionMenu(argname);
514 if (value != -9999) {
517 o->AddItem(
name, val);
519 o->AddItem(
name, label);
532 if (tval && strlen(tval)) {
534 strlcpy(val, tval + (tval[0] ==
'"' ? 1 : 0),
sizeof(val));
535 if (val[strlen(val)-1] ==
'"')
536 val[strlen(val)-1]= 0;
553 static int max_ascent = 0, max_descent = 0;
558 if (max_ascent == 0) {
561 offset = (entry->
GetEh() - (max_ascent + max_descent)) / 2;
562 ty = entry->
GetEy() + max_ascent + offset - 1;
620 static int toggle = 0;
624 if (handCur ==
kNone)
626 if (rightCur ==
kNone)
630 gVirtualX->ChangeActivePointerGrab(
fId, mask, rightCur);
644 gVirtualX->ChangeActivePointerGrab(
fId, mask, rightCur);
671 TMethod *method = obj->IsA()->GetMethodAllAny(smeth.
Data());
Handle_t Cursor_t
Cursor handle.
const Mask_t kButtonPressMask
const Mask_t kPointerMotionMask
const Mask_t kButtonReleaseMask
void Warning(const char *location, const char *msgfmt,...)
Use this function in warning situations.
Using a TBrowser one can browse all ROOT objects.
TClass instances represent classes, structs and namespaces in the ROOT type system.
Long_t Property() const
Returns the properties of the TClass as a bit field stored as a Long_t value.
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
All ROOT classes may have RTTI (run time type identification) support added.
TMethodCall * GetterMethod(TClass *cl=0)
Return a TMethodCall method responsible for getting the value of data member.
Basic data type descriptor (datatype information is obtained from CINT).
TString GetTypeName()
Get basic type of typedef, e,g.: "class TDirectory*" -> "TDirectory".
virtual Int_t GetValue(const char *name, Int_t dflt) const
Returns the integer value for a resource.
Global functions class (global functions are obtained from CINT).
Bool_t IsEditable() const
TGWindow * GetWindowById(Window_t sw) const
Find a TGWindow via its handle. If window is not found return 0.
void AddInput(UInt_t emask)
Add events specified in the emask to the events the frame should handle.
virtual UInt_t GetDefaultWidth() const
virtual UInt_t GetDefaultHeight() const
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
TGHotString is a string with a "hot" character underlined.
virtual void Draw(Drawable_t id, GContext_t gc, Int_t x, Int_t y)
Draw a hot string and underline the hot character.
TGClient * fClient
Connection to display server.
Handle_t fId
X11/Win32 Window identifier.
The TGPicture class implements pictures and icons used in the different GUI elements and widgets.
ROOT GUI Window base class.
virtual void Add(TObject *obj)
virtual TObject * Last() const
Return the last object in the list. Returns 0 when list is empty.
virtual void Delete(Option_t *option="")
Remove all objects from the list AND delete all heap based objects.
Each ROOT method (see TMethod) has a linked list of its arguments.
const char * GetDefault() const
Get default value of method argument.
const char * GetTypeName() const
Get type of method argument, e.g.: "class TDirectory*" -> "TDirectory" Result needs to be used or cop...
TDataMember * GetDataMember() const
Returns TDataMember pointed by this methodarg.
Method or function calling interface.
TFunction * GetMethod()
Returns the TMethod describing the method to be executed.
void Execute(const char *, const char *, int *=0)
Execute method on this object with the given parameter string, e.g.
Each ROOT class (see TClass) has a linked list of methods.
virtual const char * GetCommentString()
Returns a comment string from the class declaration.
TClass * GetClass() const
EMenuItemKind IsMenuItem() const
virtual const char * GetName() const
Returns name of object.
Monitors objects for deletion and reflects the deletion by reverting the internal pointer to zero.
TObject * GetObject() const
void SetObject(TObject *obj, Bool_t fixMustCleanupBit=kTRUE)
Set obj as the spy target.
Mother of all ROOT objects.
virtual const char * GetName() const
Returns name of object.
virtual const char * ClassName() const
Returns name of class to which the object belongs.
Long_t fValue
Data member to which this option belongs.
This class creates a ROOT object browser, constituted by three main tabs.
This class creates a main window with menubar, scrollbars and a drawing area.
A TRootDialog is used to prompt for the arguments of an object's member function.
virtual void Add(const char *argname, const char *value, const char *type)
Add a label and text input field.
virtual const char * GetParameters()
Get parameter string (called by contextmenu after OK or Apply has been selected).
virtual void Popup()
Popup dialog.
int CompareTo(const char *cs, ECaseCompare cmp=kExact) const
Compare a string to char *cs2.
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
const char * Data() const
Ssiz_t Last(char c) const
Find last occurrence of a character c.
TObjArray * Tokenize(const TString &delim) const
This function is used to isolate sequential tokens in a TString.
TString & Remove(Ssiz_t pos)
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
This class defines toggling facility for both - object's method or variables.
virtual void SetOnValue(Long_t lon)
TMethodCall * GetSetter() const
virtual void SetToggledObject(TObject *obj, TMethod *anymethod)
Initializes it to toggle an object's datamember using this object's method.
virtual void SetState(Bool_t state)
Sets the value of toggle to fOnValue or fOffValue according to passed argument.
virtual Bool_t GetState()
Returns the state of Toggle according to its current value and fOnValue, returns true if they match.
TVirtualPad is an abstract base class for the Pad and Canvas classes.
virtual Int_t GetCanvasID() const =0