70 TGFrame(p, 10, 10, options, back)
92 Int_t max_ascent, max_descent;
125 TGFrame(p, 10, 10, options, back)
155 Int_t max_ascent, max_descent;
158 fTHeight = max_ascent + max_descent;
198 const char* n4,
const char* n5,
const char* n6,
199 const char* n7,
const char* n8,
const char* n9,
200 const char* n10,
const char* n11,
const char* n12)
214 if (n12 && strlen(n12)) ncol=12;
215 else if (n11 && strlen(n11)) ncol=11;
216 else if (n10 && strlen(n10)) ncol=10;
217 else if (n9 && strlen(n9)) ncol=9;
218 else if (n8 && strlen(n8)) ncol=8;
219 else if (n7 && strlen(n7)) ncol=7;
220 else if (n6 && strlen(n6)) ncol=6;
221 else if (n5 && strlen(n5)) ncol=5;
222 else if (n4 && strlen(n4)) ncol=4;
223 else if (n3 && strlen(n3)) ncol=3;
224 else if (n2 && strlen(n2)) ncol=2;
225 else if (n1 && strlen(n1)) ncol=1;
245 fCtw =
new int[ncol];
248 for (
int i = 0; i<ncol; i++) {
297 if (!bigpic || !smallpic)
return;
329 Int_t ix, iy, lx, ly;
330 Int_t max_ascent, max_descent;
334 fTHeight = max_ascent + max_descent;
368 if ( ftmpWidth > (
fCpos[0] - lx) ) {
370 tmpString = (*fItemName)(0,j) +
"...";
373 if ( ftmpWidth <= (
fCpos[0] - lx) ) {
435 for (
int j =
fSubnames[i]->Length() - 1 ; j > 0; j--) {
436 tmpString = (*
fSubnames[i])(0,j) +
"...";
448 lx =
fCpos[i+1] - ftmpWidth - 2;
450 lx = (
fCpos[i] +
fCpos[i+1] - ftmpWidth) >> 1;
569 const char* n4,
const char* n5,
const char* n6,
570 const char* n7,
const char* n8,
const char* n9,
571 const char* n10,
const char* n11,
const char* n12)
576 if (n12 && strlen(n12)) ncol=12;
577 else if (n11 && strlen(n11)) ncol=11;
578 else if (n10 && strlen(n10)) ncol=10;
579 else if (n9 && strlen(n9)) ncol=9;
580 else if (n8 && strlen(n8)) ncol=8;
581 else if (n7 && strlen(n7)) ncol=7;
582 else if (n6 && strlen(n6)) ncol=6;
583 else if (n5 && strlen(n5)) ncol=5;
584 else if (n4 && strlen(n4)) ncol=4;
585 else if (n3 && strlen(n3)) ncol=3;
586 else if (n2 && strlen(n2)) ncol=2;
587 else if (n1 && strlen(n1)) ncol=1;
659 pos.fX = (pos.fX*
fWidth)/width;
660 pos.fY = (pos.fY*
fHeight)/height;
723 Int_t width, maxwidth = 0;
730 maxwidth = std::max(maxwidth, width);
744 if (
f->GetUserData() == userData) {
783 page = dim.fHeight/4;
787 newpos = pos.fY - page;
788 if (newpos < 0) newpos = 0;
789 fCanvas->SetVsbPosition(newpos);
794 newpos =
fCanvas->GetVsbPosition() + page;
795 fCanvas->SetVsbPosition(newpos);
799 Int_t xx = pos.fX +
event->fX;
800 Int_t yy = pos.fY +
event->fY;
805 fXp = pos.fX +
event->fX;
806 fYp = pos.fY +
event->fY;
824 select_frame =
kTRUE;
828 select_frame =
kTRUE;
832 if (select_frame || last==el->
fFrame)
833 inSelection = !inSelection;
834 if (inSelection || select_frame) {
848 total = selected = 0;
859 select_frame =
kTRUE;
863 select_frame =
kTRUE;
888 if ( selected == 0 ) {
983 Int_t hw = pos.fX + dim.fWidth;
1049 Int_t hw = pos.fX + dim.fWidth - dx;
1052 if (
x > hw && (hb && !hb->
IsMapped())) {
1187 fHScrollbar->Connect(
"PositionChanged(Int_t)",
"TGListView",
1188 this,
"ScrollHeader(Int_t)");
1218 Int_t i, xl = - pos;
1239 if (ncolumns <= 0) {
1240 Error(
"SetHeaders",
"number of columns must be > 0");
1268 fSplitHeader[i]->Connect(
"LayoutListView()",
"TGListView",
1270 fSplitHeader[i]->Connect(
"LayoutHeader(TGFrame *)",
"TGListView",
1271 this,
"LayoutHeader(TGFrame *)");
1272 fSplitHeader[i]->Connect(
"DoubleClicked(TGVFileSplitter*)",
"TGListView",
1273 this,
"SetDefaultColumnWidth(TGVFileSplitter*)");
1300 Error(
"SetHeader",
"header index must be [0 - %d>",
fNColumns-1);
1311 if (txt.
Contains(
"modified")) txt +=
" date";
1312 if (txt.
Contains(
"attributes")) txt =
"type";
1387 Error(
"SetContainer",
"frame must inherit from TGLVContainer");
1407 Error(
"SetDefaultColumnWidth",
"no listview container set yet");
1418 if (i == 0) w = std::max(
fMaxSize.fWidth + 10, w);
1434 Error(
"ResizeColumns",
"no listview container set yet");
1453 Error(
"Layout",
"no listview container set yet");
1469 if (i == 0) w = std::max(
fMaxSize.fWidth + 10, w);
1476 for (
int j =
fColNames[i].Length() - 1 ; j > 0; j--) {
1518 container->
Move(0,
h);
1527 container->
Move(0, 0);
1540 static Int_t oldPos = 0;
1541 if (head == 0) oldPos = 0;
1546 Error(
"Layout",
"no listview container set yet");
1562 if (i == 0) w = std::max(
fMaxSize.fWidth + 10, w);
1569 for (
int j =
fColNames[i].Length() - 1 ; j > 0; j--) {
1579 oldPos - posx, 0, oldPos - posx,
fVport->GetHeight());
1582 xl + w - posx, 0, xl + w - posx,
fVport->GetHeight());
1612 entry = (
TGLVEntry *) cnt->GetNextSelected(&p);
1616 if ((cnt->NumSelected() == 1) && (entry != 0)) {
1624 if ((cnt->NumSelected() == 1) && (entry!=0)) {
1650 Emit(
"Clicked(TGLVEntry*,Int_t)", args);
1665 Emit(
"Clicked(TGLVEntry*,Int_t,Int_t,Int_t)", args);
1678 Emit(
"DoubleClicked(TGLVEntry*,Int_t)", args);
1693 Emit(
"DoubleClicked(TGLVEntry*,Int_t,Int_t,Int_t)", args);
1726 out <<
"\n // list view\n";
1727 out <<
" TGListView *" <<
GetName() <<
" = new TGListView(" <<
fParent->GetName() <<
"," <<
GetWidth() <<
","
1730 if (option && strstr(option,
"keep_names"))
1731 out <<
" " <<
GetName() <<
"->SetName(\"" <<
GetName() <<
"\");\n";
1737 out <<
" " <<
GetName() <<
"->SetViewMode(";
1741 case kLVList: out <<
"kLVList";
break;
1763 out <<
"\n // list view container\n";
1764 out <<
" TGLVContainer *" <<
GetName() <<
" = new TGLVContainer(";
1769 out << extra_args <<
");\n";
1771 if (option && strstr(option,
"keep_names"))
1772 out <<
" " <<
GetName() <<
"->SetName(\"" <<
GetName() <<
"\");\n";
const Mask_t kKeyShiftMask
const Mask_t kKeyControlMask
Handle_t FontStruct_t
Pointer to font structure.
ULong_t Pixel_t
Pixel value.
Handle_t Window_t
Window handle.
ULongptr_t Handle_t
Generic resource handle.
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
int Int_t
Signed integer 4 bytes (int).
long Longptr_t
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).
Error("WriteTObject","The current directory (%s) is not associated with a file. The object (%s) has not been written.", GetName(), objname)
static unsigned int total
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
virtual void SetContainer(TGFrame *f)
TGFrame * GetContainer() const
virtual Int_t GetVsbPosition() const
Get position of vertical scrollbar.
TGViewPort * fVport
viewport through which we look at contents
TGHScrollBar * fHScrollbar
horizontal scrollbar
TGVScrollBar * fVScrollbar
vertical scrollbar
virtual Int_t GetHsbPosition() const
Get position of horizontal scrollbar.
Bool_t ProcessMessage(Longptr_t msg, Longptr_t parm1, Longptr_t parm2) override
Handle message generated by the canvas scrollbars.
TGCanvas(const TGCanvas &)=delete
void Layout() override
Create layout for canvas.
virtual void SetLayoutManager(TGLayoutManager *l)
Set the layout manager for the composite frame.
virtual TGLayoutManager * GetLayoutManager() const
Int_t MustCleanup() const override
Bool_t fMapSubwindows
kTRUE - map subwindows
TList * fList
container of frame elements
virtual void ActivateItem(TGFrameElement *el)
Activate item.
virtual void RemoveItem(TGFrame *item)
Remove item from container.
TGCanvas * fCanvas
pointer to canvas
TTimer * fScrollTimer
autoscroll timer
Int_t fYf
other corner of rubber band box
virtual void UnSelectAll()
Unselect all items in the container.
Bool_t HandleButton(Event_t *event) override
Handle mouse button event in container.
virtual void ClearViewPort()
Clear view port and redraw full content.
const TGWindow * fMsgWindow
window handling container messages
virtual TGFrameElement * FindFrame(Int_t x, Int_t y, Bool_t exclude=kTRUE)
Find frame located int container at position x,y.
Int_t fYp
previous pointer position
virtual void AdjustPosition()
Move content to position of highlighted/activated frame.
virtual void Clicked(TGFrame *f, Int_t btn)
Emit Clicked() signal.
void Layout() override
Layout container entries.
Int_t fY0
corner of rubber band box
virtual void SetVsbPosition(Int_t newPos)
Set position of vertical scrollbar.
TGCanvas * GetCanvas() const
TGContainer(const TGContainer &)=delete
Int_t fSelected
number of selected items
virtual void SetHsbPosition(Int_t newPos)
set new hor. position
Bool_t fScrolling
kTRUE - when scrolling is ON
static const TGGC & GetLineGC()
Get graphics context for line drawing.
Bool_t fDragging
true if in dragging mode
virtual void DrawRegion(Int_t x, Int_t y, UInt_t w, UInt_t h)
Draw a region of container in viewport.
TGViewPort * fViewPort
container viewport
void RemoveAll() override
Remove all items from the container.
virtual TGPosition GetPagePosition() const
Returns page position.
virtual TGHScrollBar * GetHScrollbar() const
returns pointer to hor. scroll bar
TGFrameElement * fLastActiveEl
last active item
virtual void DeActivateItem(TGFrameElement *el)
DeActivate item.
Encapsulate fonts used in the GUI system.
virtual TGDimension GetDefaultSize() const
std::cout << fWidth << "x" << fHeight << std::endl;
void Resize(UInt_t w=0, UInt_t h=0) override
Resize the frame.
virtual Bool_t IsActive() const
TGFrame(const TGFrame &)=delete
UInt_t fHeight
frame height
virtual UInt_t GetDefaultWidth() const
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save a frame widget as a C++ statement(s) on output stream out.
Int_t fBorderWidth
frame border width
static Pixel_t fgDefaultSelectedBackground
TGFrameElement * GetFrameElement() const
void Move(Int_t x, Int_t y) override
Move frame.
virtual void SendMessage(const TGWindow *w, Longptr_t msg, Longptr_t parm1, Longptr_t parm2)
Send message (i.e.
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,...
static Pixel_t fgWhitePixel
static Pixel_t fgBlackPixel
Encapsulate a graphics context used in the low level graphics.
TGHotString is a string with a "hot" character underlined.
void LineRight(Bool_t select=kFALSE) override
Move current position one column right.
TGListView * fListView
listview which contains this container
Bool_t HandleButton(Event_t *event) override
Handle mouse button event in container.
void LineDown(Bool_t select=kFALSE) override
Move one line down.
TList * GetSelectedItems()
Get list of selected items in container.
virtual void SetColumns(Int_t *cpos, Int_t *jmode)
Set column information for list items.
void LineLeft(Bool_t select=kFALSE) override
Move current position one column left.
virtual void SetColHeaders(const char *n1="", const char *n2="", const char *n3="", const char *n4="", const char *n5="", const char *n6="", const char *n7="", const char *n8="", const char *n9="", const char *n10="", const char *n11="", const char *n12="")
set columns headers
virtual void SelectEntry(TGLVEntry *item)
Select the TGLVEntry given as argument and de-select the previous one if the container is not in mult...
Bool_t fMultiSelect
true = multiple file selection
void DeActivateItem(TGFrameElement *el) override
Unselect/deactivate item.
TGLayoutHints * fItemLayout
item layout hints
virtual Int_t GetMaxSubnameWidth(Int_t idx) const
Get width of largest subname in container.
virtual void SetViewMode(EListViewMode viewMode)
Set list view mode for container.
TGLVEntry * fLastActive
last active item
virtual void RemoveItemWithData(void *userData)
Remove item with fUserData == userData from container.
void ActivateItem(TGFrameElement *el) override
Select/activate item.
Int_t * fCpos
position of sub names
TGLVContainer(const TGLVContainer &)=delete
TList * GetSelectedEntries()
Get list of selected items in container.
Int_t * fJmode
alignment of sub names
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save a list view container as a C++ statement(s) on output stream out.
TGDimension GetPageDimension() const override
Returns page dimension.
EListViewMode GetViewMode() const
~TGLVContainer() override
Delete list view container.
void LineUp(Bool_t select=kFALSE) override
Make current position first line in window by scrolling up.
EListViewMode fViewMode
list view viewing mode
virtual TGDimension GetMaxItemSize() const
Get size of largest item in container.
const TGPicture * fCurrent
current icon
void * fUserData
pointer to user data structure
UInt_t fTHeight
height of name
~TGLVEntry() override
Delete a list view item.
virtual void SetPictures(const TGPicture *bigpic=nullptr, const TGPicture *smallpic=nullptr)
change pictures
TGString ** fSubnames
sub names of item (details)
void DoRedraw() override
Redraw list view item.
Int_t * fCpos
position of sub names
UInt_t fTWidth
width of name
TGDimension GetDefaultSize() const override
Get default size of list item.
void Activate(Bool_t a) override
Make list view item active.
Bool_t fActive
true if item is active
void DrawCopy(Handle_t id, Int_t x, Int_t y) override
Draw list view item in other window.
FontStruct_t fFontStruct
text font
EListViewMode fViewMode
list view viewing mode
GContext_t fNormGC
drawing graphics context
TGString * fItemName
name of item
const TGPicture * fBigPic
big icon
virtual void SetViewMode(EListViewMode viewMode)
Set the view mode for this list item.
Bool_t fChecked
true if item is checked
TGLVEntry(const TGLVEntry &)=delete
Int_t * fCtw
width of sub names
TGSelectedPicture * fSelPic
selected icon
const TGPicture * fSmallPic
small icon
virtual Int_t GetSubnameWidth(Int_t idx) const
Int_t * fJmode
alignment for sub names
virtual void SetSubnames(const char *n1="", const char *n2="", const char *n3="", const char *n4="", const char *n5="", const char *n6="", const char *n7="", const char *n8="", const char *n9="", const char *n10="", const char *n11="", const char *n12="")
Sets new subnames.
static const TGGC & GetDefaultGC()
Return the default graphics context in use.
static FontStruct_t GetDefaultFontStruct()
Return the default font structure in use.
const TGPicture * fCheckMark
checkmark
static TGGC * fgDefaultGC
static const TGFont * fgDefaultFont
This class describes layout hints used by the layout classes.
virtual void SetDefaultWidth(UInt_t)
This is a layout manager for the TGListView widget.
This is a layout manager for the TGListView widget.
Int_t * fJmode
column text alignment
static FontStruct_t GetDefaultFontStruct()
Return the default font structure in use.
virtual void DoubleClicked(TGLVEntry *entry, Int_t btn)
Emit DoubleClicked() signal.
virtual void ResizeColumns()
Resize column headers to show whole item names.
EListViewMode fViewMode
view mode if list view widget
virtual void ScrollHeader(Int_t pos)
Scroll header buttons with horizontal scrollbar.
TGListView(const TGListView &)=delete
Int_t * fColumns
column width
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save a list view widget as a C++ statement(s) on output stream out.
virtual void SetHeader(const char *s, Int_t hmode, Int_t cmode, Int_t idx)
Set header button idx [0-fNColumns>, hmode is the x text alignmode (ETextJustification) for the heade...
void Layout() override
Layout list view components (container and contents of container).
FontStruct_t fFontStruct
text font
virtual void SetIncrements(Int_t hInc, Int_t vInc)
Set horizontal and vertical scrollbar increments.
void SetContainer(TGFrame *f) override
Set list view container.
virtual void SetViewMode(EListViewMode viewMode)
Set list view mode.
GContext_t fNormGC
drawing graphics context
static const TGGC & GetDefaultGC()
Return the default graphics context in use.
~TGListView() override
Delete a list view widget.
Int_t fNColumns
number of columns
TGDimension fMaxSize
maximum item size
TGHeaderFrame * fHeader
frame used as container for column headers
virtual void SetHeaders(Int_t ncolumns)
Set number of headers, i.e.
TString * fColNames
column titles for in detailed mode
virtual void SelectionChanged()
UInt_t fMinColumnSize
Minimun column size.
TGTextButton ** fColHeader
column headers for in detailed mode
virtual void SetDefaultHeaders()
Default headers are: Name, Attributes, Size, Owner, Group, Modified.
virtual void Clicked(TGLVEntry *entry, Int_t btn)
Emit Clicked() signal.
virtual void LayoutHeader(TGFrame *head)
Layout list view components (container and contents of container).
Bool_t fJustChanged
Indicate whether the view mode was just changed to Detail.
virtual void SetDefaultColumnWidth(TGVFileSplitter *splitter)
Set default column width of the columns headers.
static const TGFont * fgDefaultFont
TGVFileSplitter ** fSplitHeader
column splitters
virtual const char * GetHeader(Int_t idx) const
Returns name of header idx.
static TGGC * fgDefaultGC
Bool_t ProcessMessage(Longptr_t msg, Longptr_t parm1, Longptr_t parm2) override
Handle messages generated by the list view components.
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.
TGString wraps a TString and adds some graphics routines like drawing, size of string on screen depen...
virtual void Draw(Drawable_t id, GContext_t gc, Int_t x, Int_t y)
Draw string.
Yield an action as soon as it is clicked.
This is a layout manager for the TGListView widget.
ROOT GUI Window base class.
const TGWindow * fParent
Parent window.
const TGWindow * GetParent() const
virtual Bool_t IsMapped()
Returns kTRUE if window is mapped on screen, kFALSE otherwise.
const char * GetName() const override
Return unique name, used in SavePrimitive methods.
Collectable string class.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
void Emit(const char *signal, const T &arg)
Activate signal with single parameter.
void ToLower()
Change string to lower-case.
const char * Data() const
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
EGEventType fType
of event (see EGEventType)
UInt_t fState
key or button mask
Int_t fYRoot
coordinates relative to root
UInt_t fCode
key or button code
Longptr_t fUser[5]
5 longs can be used by client message events NOTE: only [0], [1] and [2] may be used.