71#include "RConfigure.h" 
   78const Int_t kAcceleration[
kAutoScrollFudge+1] = {1,1,1,2,3,4,6,7,8,16,32};
 
   88class TGContainerKeyboardTimer : 
public TTimer {
 
   99Bool_t TGContainerKeyboardTimer::Notify()
 
  101   fContainer->SearchPattern();
 
  109class TGContainerScrollTimer : 
public TTimer {
 
  120Bool_t TGContainerScrollTimer::Notify()
 
  122   fContainer->OnAutoScroll();
 
  189   if (-xpos < 0) 
return;
 
  190   else diff = xpos - 
fX0;
 
  196#if defined(R__HAS_COCOA) 
  241   if (-ypos < 0) 
return;
 
  242   else diff = ypos - 
fY0;
 
  248#if defined(R__HAS_COCOA) 
  297   if ((event->
fWidth > 32768) || (
event->fHeight  > 32768)) {
 
  357   TGCompositeFrame(p->GetViewPort(), p->GetWidth(), p->GetHeight(), options, back)
 
  436   Emit(
"CurrentChanged(Int_t,Int_t)",args);
 
  471   Emit(
"KeyPressed(TGFrame*,UInt_t,UInt_t)", args);
 
  512   Emit(
"Clicked(TGFrame*,Int_t)", args);
 
  527   Emit(
"Clicked(TGFrame*,Int_t,Int_t,Int_t)", args);
 
  540   Emit(
"DoubleClicked(TGFrame*,Int_t)", args);
 
  555   Emit(
"DoubleClicked(TGFrame*,Int_t,Int_t,Int_t)", args);
 
  602   Emit(
"UnSelectAll()");
 
  630   Emit(
"InvertSelection()");
 
  685         *current = (
void *) lnk;
 
  847      gVirtualX->FillRectangle(pixmap, gcBg, 0, 0, w, 
h);
 
  935      newpos = pos.
fY - page;
 
  936      if (newpos < 0) newpos = 0;
 
  953      fXp = pos.
fX + 
event->fX;
 
  954      fYp = pos.
fY + 
event->fY;
 
  961      total = selected = 0;
 
  975               select_frame = 
kTRUE;
 
  979               select_frame = 
kTRUE;
 
  999      if ( selected == 0 ) {
 
 1039   const char *iconname = 0;
 
 1041   if (
f->InheritsFrom(
"TGLVEntry")) {
 
 1052         if (((
name == 0) || (!
name[0])) && (cl != 0))
 
 1100   Int_t xx = pos.
fX + 
event->fX; 
 
 1101   Int_t yy = pos.
fY + 
event->fY;
 
 1113            select_frame = 
kTRUE;
 
 1117            select_frame = 
kTRUE;
 
 1138   int xf0, yf0, xff, yff, 
total, selected;
 
 1163      total = selected = 0;
 
 1187         xf0 = 
f->GetX() + (
f->GetWidth() >> 3);
 
 1188         yf0 = 
f->GetY() + (
f->GetHeight() >> 3);
 
 1189         xff = xf0 + 
f->GetWidth() - (
f->GetWidth() >> 2);
 
 1190         yff = yf0 + 
f->GetHeight() - (
f->GetHeight() >> 2);
 
 1192         if (((xf0 > 
fX0 && xf0 < 
fXf) ||
 
 1193              (xff > 
fX0 && xff < 
fXf)) &&
 
 1194             ((yf0 > 
fY0 && yf0 < 
fYf) ||
 
 1195              (yff > 
fY0 && yff < 
fYf))) {
 
 1280      gVirtualX->LookupString(event, input, 
sizeof(input), keysym);
 
 1312         switch((
EKeySym)keysym & ~0x20) {   
 
 1350      if (
n && keysym >= 32 && keysym < 127 &&     
 
 1430                                                  caseSensitive, subString);
 
 1474                                                             fCanvas, 400, 150, srch, &ret);
 
 1477                                              "FindFrameByName(char *)");
 
 1494   int xf0, yf0, xff, yff, 
total, selected;
 
 1549      total = selected = 0;
 
 1556         xf0 = 
f->GetX() + (
f->GetWidth() >> 3);
 
 1557         yf0 = 
f->GetY() + (
f->GetHeight() >> 3);
 
 1558         xff = xf0 + 
f->GetWidth() - (
f->GetWidth() >> 2);
 
 1559         yff = yf0 + 
f->GetHeight() - (
f->GetHeight() >> 2);
 
 1561         if (((xf0 > 
fX0 && xf0 < 
fXf) ||
 
 1562            (xff > 
fX0 && xff < 
fXf)) &&
 
 1563            ((yf0 > 
fY0 && yf0 < 
fYf) ||
 
 1564            (yff > 
fY0 && yff < 
fYf))) {
 
 1691   if (
name.IsNull()) 
return 0;
 
 1724            if (str.
Length() == 
name.Length()) 
return el;
 
 1807      if (
f->GetY() < pos) {
 
 1812      } 
else if (
f->GetY() + (
Int_t)
f->GetHeight() > vh) {
 
 1828      if (
f->GetX() < pos) {
 
 1833      } 
else if (
f->GetX() + (
Int_t)
f->GetWidth() > hw) {
 
 1906   if (
x >= hw && (hb && !hb->
IsMapped())) { 
 
 2168         Error(
"MapSubwindows", 
"no canvas container set yet");
 
 2187      Error(
"AddFrame", 
"no canvas container set yet");
 
 2193      Error(
"AddFrame", 
"canvas container must inherit from TGCompositeFrame");
 
 2207         if (
gClient->GetStyle() > 1) 
break;
 
 2226   Bool_t   need_vsb, need_hsb;
 
 2229   need_vsb = need_hsb = 
kFALSE;
 
 2233      Error(
"Layout", 
"no canvas container set yet");
 
 2246   if (!fixedw) container->
SetWidth(cw);
 
 2253         if ((
Int_t) ch < 0) {
 
 2265         if ((
Int_t) cw < 0) {
 
 2269         if (!fixedw) container->
SetWidth(cw);
 
 2280            if ((
Int_t) ch < 0) {
 
 2297   if (fixedw && fixedh) {
 
 2299   } 
else if (fixedw) {
 
 2300      container->
Resize(curw, tch);
 
 2301   } 
else if (fixedh) {
 
 2304      container->
Resize(tcw, tch);
 
 2445   out << std::endl << 
"   // canvas widget" << std::endl;
 
 2447   out << 
"   TGCanvas *";
 
 2453         out << 
");" << std::endl;
 
 2460   if (option && strstr(option, 
"keep_names"))
 
 2461      out << 
"   " << 
GetName() << 
"->SetName(\"" << 
GetName() << 
"\");" << std::endl;
 
 2464   out << std::endl << 
"   // canvas viewport" << std::endl;
 
 2466       << 
"->GetViewPort();" << std::endl;
 
 2472       << 
");" << std::endl;
 
 2474   out << 
"   " << cont->
GetName() << 
"->SetLayoutManager(";
 
 2476   out << 
");"<< std::endl;
 
 2478   out << 
"   " << cont->
GetName() << 
"->MapSubwindows();" << std::endl;
 
 2481       << 
");" << std::endl;
 
 2483   out << 
"   " << 
GetName() << 
"->MapSubwindows();" << std::endl;
 
 2487          << 
");" << std::endl;
 
 2492          << 
");" << std::endl;
 
 2503   out << std::endl << 
"   // canvas container" << std::endl;
 
 2514         out <<
");" << std::endl;
 
 2521   if (option && strstr(option, 
"keep_names"))
 
 2522      out << 
"   " << 
GetName() << 
"->SetName(\"" << 
GetName() << 
"\");" << std::endl;
 
const Mask_t kWABitGravity
 
const Mask_t kGCBackground
 
const Mask_t kGCForeground
 
const Mask_t kGCLineStyle
 
const Mask_t kGCSubwindowMode
 
const Mask_t kGCLineWidth
 
const Mask_t kButtonPressMask
 
const Mask_t kGCFillStyle
 
const Mask_t kWAWinGravity
 
const Mask_t kAnyModifier
 
const Mask_t kKeyPressMask
 
const Mask_t kPointerMotionMask
 
const Mask_t kKeyShiftMask
 
const Mask_t kKeyControlMask
 
const Mask_t kStructureNotifyMask
 
const Mask_t kButtonReleaseMask
 
const Mask_t kGCGraphicsExposures
 
const Int_t kKeyboardTime
 
const Int_t kAutoScrollFudge
 
const Int_t kAcceleration[kAutoScrollFudge+1]
 
R__EXTERN TGDNDManager * gDNDManager
 
static unsigned int total
 
R__EXTERN void * gTQSender
 
R__EXTERN TSystem * gSystem
 
TClass instances represent classes, structs and namespaces in the ROOT type system.
 
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.
 
TGFrame * GetContainer() const
 
virtual void MapSubwindows()
Map all canvas sub windows.
 
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a canvas widget as a C++ statement(s) on output stream out.
 
virtual void SetVsbPosition(Int_t newPos)
Set position of vertical scrollbar.
 
virtual void SetHsbPosition(Int_t newPos)
Set position of horizontal scrollbar.
 
virtual Int_t GetVsbPosition() const
Get position of vertical scrollbar.
 
virtual void DrawBorder()
Draw canvas border.
 
TGHScrollBar * fHScrollbar
 
TGVScrollBar * GetVScrollbar() const
 
TGVScrollBar * fVScrollbar
 
TGViewPort * GetViewPort() const
 
virtual Int_t GetHsbPosition() const
Get position of horizontal scrollbar.
 
virtual void ClearViewPort()
Clear view port and redraw content.
 
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
Adding a frame to a canvas is actually adding the frame to the viewport container.
 
TGCanvas(const TGCanvas &)
 
@ kCanvasScrollHorizontal
 
virtual void Layout()
Create layout for canvas.
 
void SetScrolling(Int_t scrolling)
Set scrolling policy.
 
virtual ~TGCanvas()
Delete canvas.
 
virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2)
Handle message generated by the canvas scrollbars.
 
TGHScrollBar * GetHScrollbar() const
 
const TGWindow * GetDefaultRoot() const
Returns the root (i.e.
 
TGMimeTypes * GetMimeTypeList() const
 
const TGPicture * GetPicture(const char *name)
Get picture from the picture pool.
 
void NeedRedraw(TGWindow *w, Bool_t force=kFALSE)
Set redraw flags.
 
virtual TList * GetList() const
 
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
Add frame to the composite frame using the specified layout hints.
 
virtual TGLayoutManager * GetLayoutManager() const
 
virtual void Layout()
Layout the elements of the composite frame.
 
virtual void MapSubwindows()
Map all sub windows that are part of the composite frame.
 
virtual void RemoveFrame(TGFrame *f)
Remove frame from composite frame.
 
virtual Bool_t HandleExpose(Event_t *event)
Handle expose events. Do not use double buffer.
 
TGRectangle fExposedRegion
 
virtual void ActivateItem(TGFrameElement *el)
Activate item.
 
virtual void RemoveItem(TGFrame *item)
Remove item from container.
 
virtual Bool_t HandleMotion(Event_t *event)
Handle mouse motion events.
 
virtual void RepeatSearch()
Repeats search.
 
virtual void UnSelectAll()
Unselect all items in the container.
 
virtual Bool_t HandleKey(Event_t *event)
The key press event handler converts a key press to some line editor action.
 
virtual void PageDown(Bool_t select=kFALSE)
Move position one page down.
 
virtual Bool_t HandleButton(Event_t *event)
Handle mouse button event in container.
 
virtual void LineLeft(Bool_t select=kFALSE)
Move current position one column left.
 
virtual void ClearViewPort()
Clear view port and redraw full content.
 
const TGWindow * fMsgWindow
 
virtual TGFrameElement * FindFrame(Int_t x, Int_t y, Bool_t exclude=kTRUE)
Find frame located int container at position x,y.
 
virtual void AdjustPosition()
Move content to position of highlighted/activated frame.
 
virtual void OnMouseOver(TGFrame *)
Signal emitted when pointer is over entry.
 
virtual void Clicked(TGFrame *f, Int_t btn)
Emit Clicked() signal.
 
virtual void InvertSelection()
Invert the selection, all selected items become unselected and vice versa.
 
virtual void PageUp(Bool_t select=kFALSE)
Move position one page up.
 
virtual void LineDown(Bool_t select=kFALSE)
Move one line down.
 
virtual const TGFrame * GetNextSelected(void **current)
Return the next selected item.
 
virtual void Search(Bool_t close=kTRUE)
Invokes search dialog. Looks for item with the entered name.
 
virtual ~TGContainer()
Delete canvas container.
 
virtual void LineUp(Bool_t select=kFALSE)
Make current position first line in window by scrolling up.
 
virtual void Home(Bool_t select=kFALSE)
Move to upper-left corner of container.
 
virtual void KeyPressed(TGFrame *, UInt_t keysym, UInt_t mask)
Signal emitted when keyboard key pressed.
 
virtual void SetDragPixmap(const TGPicture *pic)
Set drag window pixmaps and hotpoint.
 
const TGPicture * GetObjPicture(TGFrame *f)
Retrieve icons associated with class "name".
 
virtual void SetVsbPosition(Int_t newPos)
Set position of vertical scrollbar.
 
TGCanvas * GetCanvas() const
 
virtual void ReturnPressed(TGFrame *)
Signal emitted when Return/Enter key pressed.
 
virtual void SearchPattern()
Search for entry which name begins with pattern.
 
virtual void SetPageDimension(const TGDimension &dim)
Set page dimension.
 
virtual void LineRight(Bool_t select=kFALSE)
Move current position one column right.
 
virtual void SpacePressed(TGFrame *)
Signal emitted when space key pressed.
 
virtual void SetHsbPosition(Int_t newPos)
set new hor. position
 
virtual void DoRedraw()
Redraw content of container in the viewport region.
 
virtual TGDimension GetPageDimension() const
Returns page dimension.
 
TGContainer(const TGContainer &)
 
virtual void Layout()
Layout container entries.
 
virtual void OnAutoScroll()
Autoscroll while close to & beyond The Wall.
 
static const TGGC & GetLineGC()
Get graphics context for line drawing.
 
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a canvas container as a C++ statement(s) on output stream out.
 
virtual void CurrentChanged(Int_t x, Int_t y)
Emit signal when current position changed.
 
virtual void DrawRegion(Int_t x, Int_t y, UInt_t w, UInt_t h)
Draw a region of container in viewport.
 
virtual void RemoveAll()
Remove all items from the container.
 
friend class TGContainerScrollTimer
 
virtual TGVScrollBar * GetVScrollbar() const
returns pointer to vert. scroll bar
 
virtual TGFrame * FindFrameByName(const char *name)
Find frame by name.
 
friend class TGContainerKeyboardTimer
 
virtual void * FindItem(const TString &name, Bool_t direction=kTRUE, Bool_t caseSensitive=kTRUE, Bool_t subString=kFALSE)
 
virtual Bool_t HandleDoubleClick(Event_t *event)
Handle double click mouse event.
 
const TGWindow * GetMessageWindow() const
 
virtual void DoubleClicked(TGFrame *f, Int_t btn)
Emit DoubleClicked() signal.
 
virtual TGPosition GetPagePosition() const
Returns page position.
 
virtual void End(Bool_t select=kFALSE)
Move to the bottom-right corner of container.
 
virtual void SetPagePosition(const TGPosition &pos)
Set page position.
 
virtual TGHScrollBar * GetHScrollbar() const
returns pointer to hor. scroll bar
 
TGFrameElement * fLastActiveEl
 
virtual void SelectAll()
Select all items in the container.
 
virtual void DeActivateItem(TGFrameElement *el)
DeActivate item.
 
Bool_t IsDragging() const
 
Bool_t StartDrag(TGFrame *src, Int_t x_root, Int_t y_root, Window_t grabWin=kNone)
Start dragging.
 
void SetDragPixmap(Pixmap_t pic, Pixmap_t mask, Int_t hot_x, Int_t hot_y)
Set drag window pixmaps and hotpoint.
 
Bool_t Drag(Int_t x_root, Int_t y_root, Atom_t action, Time_t timestamp)
Process drag event.
 
static Atom_t GetDNDActionCopy()
 
virtual void DrawCopy(Handle_t, Int_t, Int_t)
 
void AddInput(UInt_t emask)
Add events specified in the emask to the events the frame should handle.
 
virtual Bool_t IsLayoutBroken() const
 
static const TGGC & GetBlackGC()
Get black graphics context.
 
virtual Bool_t HandleConfigureNotify(Event_t *event)
This event is generated when the frame is resized.
 
virtual Bool_t IsActive() const
 
virtual UInt_t GetDefaultWidth() const
 
virtual UInt_t GetDefaultHeight() const
 
virtual void DrawBorder()
Draw frame border.
 
virtual void Activate(Bool_t)
 
static const TGGC & GetHilightGC()
Get highlight color graphics context.
 
virtual void SetBackgroundColor(Pixel_t back)
Set background color (override from TGWindow base class).
 
virtual void SendMessage(const TGWindow *w, Long_t msg, Long_t parm1, Long_t parm2)
Send message (i.e.
 
static Pixel_t GetDefaultFrameBackground()
Get default frame background.
 
virtual UInt_t GetOptions() const
 
TString GetOptionString() const
Returns a frame option string - used in SavePrimitive().
 
static const TGGC & GetShadowGC()
Get shadow color graphics context.
 
virtual void Move(Int_t x, Int_t y)
Move frame.
 
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
 
Bool_t IsDNDSource() const
 
virtual void MoveResize(Int_t x, Int_t y, UInt_t w=0, UInt_t h=0)
Move and/or resize the frame.
 
virtual void SetWidth(UInt_t w)
 
static const TGGC & GetWhiteGC()
Get white graphics context.
 
static Pixel_t fgWhitePixel
 
virtual void MapSubwindows()
 
void SaveUserColor(std::ostream &out, Option_t *)
Save a user color in a C++ macro file - used in SavePrimitive().
 
virtual void SetHeight(UInt_t h)
 
static Pixel_t fgBlackPixel
 
static const TGGC & GetBckgndGC()
Get background color graphics context.
 
virtual void UnmapWindow()
 
void SetDashOffset(Int_t v)
Patterned/dashed line offset.
 
void SetDashList(const char v[], Int_t len)
Set dash pattern. First use SetDashOffset() if not 0.
 
Int_t GetPadRight() const
 
Int_t GetPadBottom() const
 
virtual Bool_t IsModified() const
 
const TGPicture * GetIcon(const char *filename, Bool_t small_icon)
Return icon belonging to mime type of filename.
 
Pixmap_t GetPicture() const
 
void Merge(const TGRectangle &r)
 
virtual TGSearchType * GetType() const
 
static TGSearchDialog *& SearchDialog()
Return global search dialog.
 
TGFrame * GetContainer() const
 
virtual Bool_t HandleConfigureNotify(Event_t *event)
Handle resize events.
 
void SetContainer(TGFrame *f)
Add container frame to the viewport.
 
virtual void SetHPos(Int_t xpos)
Moves content of container frame in horizontal direction.
 
virtual void SetVPos(Int_t ypos)
Moves content of container frame in vertical direction.
 
void SetPos(Int_t xpos, Int_t ypos)
Goto new position.
 
TGViewPort(const TGViewPort &)
 
virtual void SetWindowName(const char *name=0)
Set window name.
 
virtual const char * GetName() const
Return unique name, used in SavePrimitive methods.
 
virtual UInt_t GetEditDisabled() const
 
virtual void SetEditDisabled(UInt_t on=kEditDisable)
 
virtual Bool_t HandleExpose(Event_t *event)
 
virtual void DestroyWindow()
 
const TGWindow * GetParent() const
 
virtual Bool_t IsMapped()
Returns kTRUE if window is mapped on screen, kFALSE otherwise.
 
Utility class for browsing TMapFile objects.
 
Book space in a file, create I/O buffers, to fill them, (un)compress them.
 
virtual TObject * After(const TObject *obj) const
Returns the object after object obj.
 
virtual TObject * Remove(TObject *obj)
Remove object from the list.
 
virtual TObjLink * FirstLink() const
 
virtual TObject * Last() const
Return the last object in the list. Returns 0 when list is empty.
 
virtual TObject * Before(const TObject *obj) const
Returns the object before object obj.
 
virtual TObject * First() const
Return the first object in the list. Returns 0 when list is empty.
 
virtual const char * GetName() const
Returns name of object.
 
Wrapper around a TObject so it can be stored in a TList.
 
TObject * GetObject() const
 
Mother of all ROOT objects.
 
virtual Bool_t IsFolder() const
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
 
virtual const char * GetName() const
Returns name of object.
 
virtual const char * GetIconName() const
Returns mime type name of object.
 
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
 
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
 
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
 
virtual const char * GetTitle() const
Returns title of object.
 
void Emit(const char *signal, const T &arg)
Activate signal with single parameter.
 
Bool_t Connect(const char *signal, const char *receiver_class, void *receiver, const char *slot)
Non-static method is used to connect from the signal of this object to the receiver slot.
 
Bool_t Disconnect(const char *signal=0, void *receiver=0, const char *slot=0)
Disconnects signal of this object from slot of receiver.
 
const char * Data() const
 
TString & ReplaceAll(const TString &s1, const TString &s2)
 
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
 
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
 
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
 
virtual void AddTimer(TTimer *t)
Add timer to list of system timers.
 
virtual TTimer * RemoveTimer(TTimer *t)
Remove timer from list of system timers.
 
Handles synchronous and a-synchronous timer events.
 
void Reset()
Reset the timer.
 
virtual Bool_t Notify()
Notify when timer times out.
 
Short_t Max(Short_t a, Short_t b)
 
Short_t Min(Short_t a, Short_t b)
 
Bool_t fGraphicsExposures
 
EGraphicsFunction fFunction