Logo ROOT  
Reference Guide
TGTextView.h
Go to the documentation of this file.
1// @(#)root/gui:$Id$
2// Author: Fons Rademakers 1/7/2000
3
4/*************************************************************************
5 * Copyright (C) 1995-2021, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TGTextView
13#define ROOT_TGTextView
14
15
16#include "TGView.h"
17#include "TGText.h"
18#include "TTimer.h"
19
20class TViewTimer;
21
22class TGTextView : public TGView {
23
24protected:
25 TGText *fText; ///< text buffer
26 TGText *fClipText; ///< clipboard text buffer
27 FontStruct_t fFont; ///< text font
28 Int_t fMaxAscent; ///< maximum ascent in font
29 Int_t fMaxDescent; ///< maximum descent in font
30 Int_t fMaxWidth; ///< maximum width of character in font
31 TGGC fNormGC; ///< graphics context for drawing text
32 TGGC fSelGC; ///< graphics context for drawing marked text
33 TGGC fSelbackGC; ///< graphics context for drawing marked background
34 Bool_t fMarkedFromX; ///< true if text is marked from x
35 Bool_t fMarkedFromY; ///< true if text is marker from y
36 Bool_t fIsMarked; ///< true if text is marked/selected
37 Bool_t fIsMarking; ///< true if in marking mode
38 Bool_t fIsSaved; ///< true is content is saved
39 Bool_t fReadOnly; ///< text cannot be edited
40 TGLongPosition fMarkedStart; ///< start position of marked text
41 TGLongPosition fMarkedEnd; ///< end position of marked text
42 TViewTimer *fScrollTimer; ///< scrollbar timer
43 Atom_t *fDNDTypeList; ///< handles DND types
44
45 static const TGFont *fgDefaultFont;
49
50 void Init(Pixel_t bg);
51 virtual void DrawRegion(Int_t x, Int_t y, UInt_t w, UInt_t h);
52 virtual void Mark(Long_t xPos, Long_t yPos);
53 virtual void UnMark();
54 virtual void Copy(TObject &) const { MayNotUse("Copy(TObject &)"); }
55 virtual void HLayout();
56 virtual void VLayout();
57
59 static const TGGC &GetDefaultGC();
60 static const TGGC &GetDefaultSelectedGC();
62
63private:
64 TGTextView(const TGTextView&) = delete;
65 TGTextView& operator=(const TGTextView&) = delete;
66
67public:
68 TGTextView(const TGWindow *parent = nullptr, UInt_t w = 1, UInt_t h = 1, Int_t id = -1,
69 UInt_t sboptions = 0, Pixel_t back = GetWhitePixel());
70 TGTextView(const TGWindow *parent, UInt_t w, UInt_t h, TGText *text,
71 Int_t id = -1, UInt_t sboptions = 0, Pixel_t back = GetWhitePixel());
72 TGTextView(const TGWindow *parent, UInt_t w, UInt_t h, const char *string,
73 Int_t id = -1, UInt_t sboptions = 0, Pixel_t back = GetWhitePixel());
74
75 virtual ~TGTextView();
76
77 virtual Bool_t IsSaved() { fIsSaved = fText->IsSaved(); return fIsSaved;}
78 virtual Long_t ToObjXCoord(Long_t xCoord, Long_t line);
79 virtual Long_t ToObjYCoord(Long_t yCoord);
80 virtual Long_t ToScrXCoord(Long_t xCoord, Long_t line);
81 virtual Long_t ToScrYCoord(Long_t yCoord);
82 virtual void AdjustWidth();
83 virtual Bool_t LoadFile(const char *fname, long startpos = 0, long length = -1);
84 virtual Bool_t LoadBuffer(const char *txtbuf);
85 virtual void Clear(Option_t * = "");
86 virtual Bool_t Copy();
87 virtual Bool_t SelectAll();
88 virtual Bool_t Search(const char *string, Bool_t direction, Bool_t caseSensitive);
89 virtual void SetFont(FontStruct_t font);
94 virtual Long_t ReturnLineCount() { return fText->RowCount(); }
95
96 virtual void SetSBRange(Int_t direction);
97 virtual void SetHsbPosition(Long_t newPos);
98 virtual void SetVsbPosition(Long_t newPos);
99 virtual void ShowBottom();
100 virtual void ShowTop();
101
102 virtual void SavePrimitive(std::ostream &out, Option_t * = "");
103 virtual void SetText(TGText *text);
104 virtual void AddText(TGText *text);
105 virtual void AddLine(const char *string);
106 virtual void AddLineFast(const char *string);
107 virtual void Update();
108 virtual void Layout();
109
110 virtual void SetBackground(Pixel_t p);
111 virtual void SetSelectBack(Pixel_t p);
112 virtual void SetSelectFore(Pixel_t p);
113 virtual void SetForegroundColor(Pixel_t);
114
115 TGText *GetText() const { return fText; }
116
117 virtual void SetReadOnly(Bool_t on = kTRUE) { fReadOnly = on; } //*TOGGLE* *GETTER=IsReadOnly
118 Bool_t IsReadOnly() const { return fReadOnly; }
119 Bool_t IsMarked() const { return fIsMarked; }
120
121 virtual Bool_t HandleDNDDrop(TDNDData *data);
122 virtual Atom_t HandleDNDPosition(Int_t x, Int_t y, Atom_t action,
123 Int_t xroot, Int_t yroot);
124 virtual Atom_t HandleDNDEnter(Atom_t * typelist);
125 virtual Bool_t HandleDNDLeave();
126
132 virtual Bool_t HandleTimer(TTimer *t);
134
135 virtual void DataChanged() { Emit("DataChanged()"); } //*SIGNAL*
136 virtual void DataDropped(const char *fname) { Emit("DataDropped(char *)", fname); } //*SIGNAL*
137 virtual void Marked(Bool_t mark) { Emit("Marked(Bool_t)", mark); } // *SIGNAL*
138 virtual void Clicked(const char *word) { Emit("Clicked(char *)", word); } //*SIGNAL*
139 virtual void DoubleClicked(const char *word) { Emit("DoubleClicked(char *)", word); } //*SIGNAL*
140
141 ClassDef(TGTextView,0) // Non-editable text viewer widget
142};
143
144
145class TViewTimer : public TTimer {
146private:
148
149 TViewTimer(const TViewTimer&) = delete;
150 TViewTimer& operator=(const TViewTimer&) = delete;
151
152public:
154 Bool_t Notify();
155};
156
157
158#endif
int Int_t
Definition: CPyCppyy.h:43
unsigned int UInt_t
Definition: CPyCppyy.h:44
long Long_t
Definition: CPyCppyy.h:50
Handle_t Atom_t
WM token.
Definition: GuiTypes.h:37
Handle_t FontStruct_t
Pointer to font structure.
Definition: GuiTypes.h:39
ULong_t Pixel_t
Pixel value.
Definition: GuiTypes.h:40
#define h(i)
Definition: RSha256.hxx:106
bool Bool_t
Definition: RtypesCore.h:63
const Bool_t kTRUE
Definition: RtypesCore.h:100
const char Option_t
Definition: RtypesCore.h:66
#define ClassDef(name, id)
Definition: Rtypes.h:325
Drag and drop data container.
Definition: TGDNDManager.h:64
Encapsulate fonts used in the GUI system.
Definition: TGFont.h:140
static Pixel_t GetWhitePixel()
Get white pixel value.
Definition: TGFrame.cxx:709
Encapsulate a graphics context used in the low level graphics.
Definition: TGGC.h:22
Long_t fY
y position
Definition: TGDimension.h:57
A TGTextView is a text viewer widget.
Definition: TGTextView.h:22
virtual Long_t ReturnLineLength(Long_t line)
Definition: TGTextView.h:92
virtual void AdjustWidth()
Adjust widget width to longest line.
virtual Bool_t Search(const char *string, Bool_t direction, Bool_t caseSensitive)
Search for string in text.
Definition: TGTextView.cxx:290
Int_t fMaxDescent
maximum descent in font
Definition: TGTextView.h:29
virtual void Update()
update the whole window of text view
Definition: TGTextView.cxx:262
TGGC fNormGC
graphics context for drawing text
Definition: TGTextView.h:31
Int_t fMaxAscent
maximum ascent in font
Definition: TGTextView.h:28
Bool_t fReadOnly
text cannot be edited
Definition: TGTextView.h:39
TGText * fText
text buffer
Definition: TGTextView.h:25
virtual void UnMark()
Clear marked region.
virtual Bool_t IsSaved()
Definition: TGTextView.h:77
virtual Long_t ToObjXCoord(Long_t xCoord, Long_t line)
Convert x screen coordinate to column in specified line.
Definition: TGTextView.cxx:392
virtual void SetHsbPosition(Long_t newPos)
Set position of horizontal scrollbar.
virtual Bool_t LoadFile(const char *fname, long startpos=0, long length=-1)
Load a file in the text view widget.
Definition: TGTextView.cxx:454
virtual void Mark(Long_t xPos, Long_t yPos)
Mark a text region from xPos to yPos.
virtual Long_t ReturnLongestLine()
Definition: TGTextView.h:93
virtual void Copy(TObject &) const
Copy this to obj.
Definition: TGTextView.h:54
static TGGC * fgDefaultSelectedGC
Definition: TGTextView.h:47
virtual Long_t ToScrYCoord(Long_t yCoord)
Convert line number to screen coordinate.
Definition: TGTextView.cxx:346
virtual Long_t ReturnLongestLineWidth()
Return width of longest line.
Definition: TGTextView.cxx:272
Int_t fMaxWidth
maximum width of character in font
Definition: TGTextView.h:30
TGText * fClipText
clipboard text buffer
Definition: TGTextView.h:26
virtual Bool_t HandleDoubleClick(Event_t *event)
handle double click
Definition: TGTextView.cxx:902
virtual Bool_t LoadBuffer(const char *txtbuf)
Load text from a text buffer. Return false in case of failure.
Definition: TGTextView.cxx:471
FontStruct_t fFont
text font
Definition: TGTextView.h:27
TGTextView & operator=(const TGTextView &)=delete
virtual void DataDropped(const char *fname)
Definition: TGTextView.h:136
void Init(Pixel_t bg)
Initialize a text view widget.
Definition: TGTextView.cxx:73
virtual Bool_t HandleSelectionRequest(Event_t *event)
Handle request to send current clipboard contents to requestor window.
Definition: TGTextView.cxx:967
Bool_t fIsSaved
true is content is saved
Definition: TGTextView.h:38
static const TGGC & GetDefaultSelectedGC()
Return selection graphics context in use.
Bool_t IsMarked() const
Definition: TGTextView.h:119
virtual void SetReadOnly(Bool_t on=kTRUE)
Definition: TGTextView.h:117
virtual Bool_t HandleMotion(Event_t *event)
Handle mouse motion event in the text editor widget.
Definition: TGTextView.cxx:910
static const TGGC & GetDefaultGC()
Return default graphics context in use.
Bool_t fIsMarking
true if in marking mode
Definition: TGTextView.h:37
virtual void SavePrimitive(std::ostream &out, Option_t *="")
Save a text edit widget as a C++ statement(s) on output stream out.
virtual void AddLine(const char *string)
Add a line of text to the view widget.
Definition: TGTextView.cxx:229
Bool_t fIsMarked
true if text is marked/selected
Definition: TGTextView.h:36
virtual Bool_t HandleCrossing(Event_t *event)
Handle mouse crossing event.
Definition: TGTextView.cxx:674
virtual Bool_t HandleSelectionClear(Event_t *event)
Handle selection clear event.
Definition: TGTextView.cxx:956
virtual void Clicked(const char *word)
Definition: TGTextView.h:138
TGGC fSelbackGC
graphics context for drawing marked background
Definition: TGTextView.h:33
virtual void HLayout()
Horizontal layout of widgets (canvas, scrollbar).
virtual Atom_t HandleDNDPosition(Int_t x, Int_t y, Atom_t action, Int_t xroot, Int_t yroot)
Handle Drag position event.
TGGC fSelGC
graphics context for drawing marked text
Definition: TGTextView.h:32
TViewTimer * fScrollTimer
scrollbar timer
Definition: TGTextView.h:42
TGText * GetText() const
Definition: TGTextView.h:115
static const TGGC & GetDefaultSelectedBackgroundGC()
Return graphics context for highlighted frame background.
virtual Bool_t SelectAll()
Select all text in the viewer.
Definition: TGTextView.cxx:517
virtual void Layout()
Layout the components of view.
virtual void SetForegroundColor(Pixel_t)
Set text color.
Atom_t * fDNDTypeList
handles DND types
Definition: TGTextView.h:43
virtual void SetSelectBack(Pixel_t p)
set selected text background color
Definition: TGTextView.cxx:179
static TGGC * fgDefaultGC
Definition: TGTextView.h:46
virtual void SetVsbPosition(Long_t newPos)
Set position of vertical scrollbar.
TGLongPosition fMarkedEnd
end position of marked text
Definition: TGTextView.h:41
virtual void DrawRegion(Int_t x, Int_t y, UInt_t w, UInt_t h)
Draw lines in exposed region.
Definition: TGTextView.cxx:539
virtual Long_t ToScrXCoord(Long_t xCoord, Long_t line)
Convert column number in specified line to screen coordinate.
Definition: TGTextView.cxx:360
virtual void Clear(Option_t *="")
Clear text view widget.
Definition: TGTextView.cxx:430
virtual void VLayout()
Vertical layout of widgets (canvas, scrollbar).
virtual Bool_t HandleDNDLeave()
Handle Drag Leave event.
virtual void Marked(Bool_t mark)
Definition: TGTextView.h:137
static const TGFont * fgDefaultFont
Definition: TGTextView.h:45
virtual void DataChanged()
Definition: TGTextView.h:135
Bool_t IsReadOnly() const
Definition: TGTextView.h:118
Bool_t fMarkedFromY
true if text is marker from y
Definition: TGTextView.h:35
virtual Long_t ReturnLineCount()
Definition: TGTextView.h:94
virtual Bool_t Copy()
Copy selected text to clipboard.
Definition: TGTextView.cxx:486
virtual void DoubleClicked(const char *word)
Definition: TGTextView.h:139
TGTextView(const TGTextView &)=delete
static FontStruct_t GetDefaultFontStruct()
Return default font structure in use.
virtual Atom_t HandleDNDEnter(Atom_t *typelist)
Handle Drag Enter event.
virtual Bool_t HandleTimer(TTimer *t)
Handle scroll timer.
Definition: TGTextView.cxx:719
virtual Long_t ReturnHeighestColHeight()
Definition: TGTextView.h:90
virtual void AddLineFast(const char *string)
Add a line of text to the view widget.
Definition: TGTextView.cxx:251
virtual Bool_t HandleButton(Event_t *event)
Handle mouse button event in text editor.
Definition: TGTextView.cxx:824
virtual ~TGTextView()
Cleanup text view widget.
Definition: TGTextView.cxx:158
virtual void SetFont(FontStruct_t font)
Changes text entry font.
Definition: TGTextView.cxx:333
virtual void SetBackground(Pixel_t p)
set background color
Definition: TGTextView.cxx:169
virtual void ShowBottom()
Show bottom of the page.
virtual void SetSBRange(Int_t direction)
Set the range for the kVertical or kHorizontal scrollbar.
virtual Bool_t HandleDNDDrop(TDNDData *data)
Handle Drop event.
TGLongPosition fMarkedStart
start position of marked text
Definition: TGTextView.h:40
virtual void SetText(TGText *text)
Adopt a new text buffer. The text will be deleted by this object.
Definition: TGTextView.cxx:197
Bool_t fMarkedFromX
true if text is marked from x
Definition: TGTextView.h:34
virtual void ShowTop()
Show top of the page.
virtual void AddText(TGText *text)
Add text to the view widget.
Definition: TGTextView.cxx:208
virtual void SetSelectFore(Pixel_t p)
set selected text color
Definition: TGTextView.cxx:188
virtual Long_t ToObjYCoord(Long_t yCoord)
Convert y screen coordinate to line number.
Definition: TGTextView.cxx:384
static const TGGC * fgDefaultSelectedBackgroundGC
Definition: TGTextView.h:48
A TGText is a multi line text buffer.
Definition: TGText.h:57
Long_t RowCount() const
Definition: TGText.h:106
Long_t GetLongestLine() const
Definition: TGText.h:110
Bool_t IsSaved() const
Definition: TGText.h:87
Long_t GetLineLength(Long_t row)
Get length of specified line. Returns -1 if row does not exist.
Definition: TGText.cxx:1043
A TGView provides the infrastructure for text viewer and editor widgets.
Definition: TGView.h:23
TGLongPosition fScrollVal
scroll value
Definition: TGView.h:34
ROOT GUI Window base class.
Definition: TGWindow.h:23
Mother of all ROOT objects.
Definition: TObject.h:37
void MayNotUse(const char *method) const
Use this method to signal that a method (defined in a base class) may not be called in a derived clas...
Definition: TObject.cxx:946
void Emit(const char *signal, const T &arg)
Activate signal with single parameter.
Definition: TQObject.h:164
Handles synchronous and a-synchronous timer events.
Definition: TTimer.h:51
TGView * fView
Definition: TGTextView.h:147
TViewTimer & operator=(const TViewTimer &)=delete
TViewTimer(TGView *t, Long_t ms)
Definition: TGTextView.h:153
TViewTimer(const TViewTimer &)=delete
Bool_t Notify()
Notify when timer times out and reset the timer.
Definition: TGTextView.cxx:60
TText * text
TLine * line
Double_t y[n]
Definition: legend1.C:17
Double_t x[n]
Definition: legend1.C:17
static constexpr double ms
Event structure.
Definition: GuiTypes.h:174
#define mark(osub)
Definition: triangle.c:1207