Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TGTextEntry.h
Go to the documentation of this file.
1// @(#)root/gui:$Id$
2// Author: Fons Rademakers 08/01/98
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_TGTextEntry
13#define ROOT_TGTextEntry
14
15
16#include "TGFrame.h"
17#include "TGWidget.h"
18#include "TGTextBuffer.h"
19
20class TBlinkTimer;
21class TGToolTip;
22class TColor;
23
24class TGTextEntry : public TGFrame, public TGWidget {
25
26public:
29
30protected:
31 TGTextBuffer *fText; ///< text buffer
32 Int_t fStartX; ///< selection begin in pixels
33 Int_t fEndX; ///< selection end in pixels
34 Int_t fStartIX; ///< selection begin in characters
35 Int_t fEndIX; ///< selection end in characters
36 Bool_t fSelectionOn; ///< selection status (on/off)
37 Int_t fOffset; ///< start position of text (in pixels)
38 Int_t fCursorX; ///< cursor position in pixels
39 Int_t fCursorIX; ///< cursor position in characters
40 Bool_t fCursorOn; ///< cursor status (on/off)
41 FontStruct_t fFontStruct; ///< text font
42 TGGC fNormGC; ///< normal drawing context
43 TGGC fSelGC; ///< selected text drawing context
44 GContext_t fSelbackGC; ///< selected background drawing context
45 Atom_t fClipboard; ///< clipboard property
46 TBlinkTimer *fCurBlink; ///< cursor blink timer
47 TGToolTip *fTip; ///< associated tooltip
48 Int_t fMaxLen; ///< maximum length of text
49 Bool_t fEdited; ///< kFALSE, if the line edit's contents have not been changed since the construction
50 Bool_t fFrameDrawn; ///< kTRUE draw itself inside a two-pixel frame, kFALSE draw without any frame
51 EEchoMode fEchoMode; ///< *OPTION={GetMethod="GetEchoMode";SetMethod="SetEchoMode";Items=(kNormal="Normal",kNoEcho="No Echo",kPassword="Password")}*
52 EInsertMode fInsertMode; ///< *OPTION={GetMethod="GetInsertMode";SetMethod="SetInsertMode";Items=(kInsert="Insert",kReplace="Replace")}*
53 ETextJustification fAlignment; ///< *OPTION={GetMethod="GetAlignment";SetMethod="SetAlignment";Items=(kTextLeft="Left",kTextCenterX="Center",kTextRight="Right")}*
54 Bool_t fHasOwnFont; ///< kTRUE - font defined locally, kFALSE - globally
55 UInt_t fDefWidth; ///< default width
56 UInt_t fDefHeight; ///< default height
57
58 void CopyText() const;
59 void DoRedraw() override;
61 virtual void Init();
62 virtual Bool_t IsCursorOutOfFrame();
63 void Paste();
65 virtual void ScrollByChar();
66 virtual void UpdateOffset();
67
68 static TString *fgClipboardText; ///< application clipboard text
69 static const TGFont *fgDefaultFont;
72 static const TGGC *fgDefaultGC;
73
74 static const TGGC &GetDefaultSelectedGC();
76
77private:
78 TGTextEntry(const TGTextEntry&) = delete;
80
81public:
83 static const TGGC &GetDefaultGC();
84
85 TGTextEntry(const TGWindow *p, TGTextBuffer *text, Int_t id = -1,
86 GContext_t norm = GetDefaultGC()(),
89 Pixel_t back = GetWhitePixel());
90
91 TGTextEntry(const TGWindow *parent = nullptr, const char *text = nullptr, Int_t id = -1);
92 TGTextEntry(const TString &contents, const TGWindow *parent, Int_t id = -1);
93
94 ~TGTextEntry() override;
95
96 TGDimension GetDefaultSize() const override;
97 virtual void SetDefaultSize(UInt_t w, UInt_t h);
98
99 virtual void AppendText(const char *text);
100 void Backspace();
101 void Clear(Option_t *option="") override;
102 void CursorLeft(Bool_t mark = kFALSE , Int_t steps = 1);
103 void CursorRight(Bool_t mark = kFALSE , Int_t steps = 1);
104 void CursorWordForward(Bool_t mark = kFALSE);
105 void CursorWordBackward(Bool_t mark = kFALSE);
106 void Cut();
107 void Del();
108 void Deselect();
109 void DrawBorder() override;
110 void End(Bool_t mark = kFALSE);
112 TGTextBuffer *GetBuffer() const { return fText; }
114 TString GetDisplayText() const;
115 EEchoMode GetEchoMode() const { return fEchoMode; }
117 TString GetMarkedText() const;
118 Int_t GetMaxLength() const { return fMaxLen; }
119 const char *GetText() const { return fText->GetString(); }
120 virtual TGToolTip *GetToolTip() const { return fTip; }
121 const char *GetTitle() const override { return GetText(); }
122 Bool_t HasMarkedText() const { return fSelectionOn && (fStartIX != fEndIX); }
125 void Home(Bool_t mark = kFALSE);
126 virtual void Insert(const char *);
127 virtual void InsertText(const char *text, Int_t pos);
128 Bool_t IsFrameDrawn() const { return fFrameDrawn; }
129 Bool_t IsEdited() const { return fEdited; }
130 void Layout() override { UpdateOffset(); }
131 void MarkWord(Int_t pos);
132 Int_t MaxMark() const { return fStartIX > fEndIX ? fStartIX : fEndIX; }
133 Int_t MinMark() const { return fStartIX < fEndIX ? fStartIX : fEndIX; }
134 void NewMark(Int_t pos);
135 void Remove();
136 virtual void RemoveText(Int_t start, Int_t end);
137 virtual void SetFont(TGFont *font, Bool_t local = kTRUE);
138 virtual void SetFont(FontStruct_t font, Bool_t local = kTRUE);
139 virtual void SetFont(const char *fontName, Bool_t local = kTRUE);
140 virtual void SetTextColor(Pixel_t color, Bool_t local = kTRUE);
141 virtual void SetTextColor(TColor *color, Bool_t local = kTRUE);
142 virtual void SetText(const char *text, Bool_t emit = kTRUE); //*MENU*
143 virtual void SetToolTipText(const char *text, Long_t delayms = 500); //*MENU*
144 virtual void SetMaxLength(Int_t maxlen); //*MENU*
145 virtual void SelectAll();
146 virtual void SetAlignment(ETextJustification mode = kTextLeft); //*SUBMENU*
147 virtual void SetInsertMode(EInsertMode mode = kInsert); //*SUBMENU*
148 virtual void SetEchoMode(EEchoMode mode = kNormal); //*SUBMENU*
149 void SetEnabled(Bool_t flag = kTRUE) { SetState( flag ); } //*TOGGLE* *GETTER=IsEnabled
150 virtual void SetCursorPosition(Int_t pos);
151 void SetEdited(Bool_t flag = kTRUE) { fEdited = flag; }
152 virtual void SetFocus();
153 virtual void SetFrameDrawn(Bool_t flag = kTRUE);
154 virtual void SetState(Bool_t state);
155 virtual void SetTitle(const char *label) { SetText(label); }
156 void SetForegroundColor(Pixel_t fore) override { SetTextColor(fore, kFALSE); }
157 Pixel_t GetForeground() const override { return fNormGC.GetForeground(); }
158 Bool_t HasOwnFont() const { return fHasOwnFont; }
159
160 void SavePrimitive(std::ostream &out, Option_t *option = "") override;
161
162 Bool_t HandleButton(Event_t *event) override;
163 Bool_t HandleDoubleClick(Event_t *event) override;
164 Bool_t HandleCrossing(Event_t *event) override;
165 Bool_t HandleMotion(Event_t *event) override;
166 Bool_t HandleKey(Event_t *event) override;
167 Bool_t HandleFocusChange(Event_t *event) override;
168 Bool_t HandleSelection(Event_t *event) override;
169 Bool_t HandleSelectionClear(Event_t *event) override;
170 Bool_t HandleSelectionRequest(Event_t *event) override;
171 Bool_t HandleTimer(TTimer *t) override;
172 Bool_t HandleConfigureNotify(Event_t *event) override;
173
174 virtual void TextChanged(const char *text = nullptr);//*SIGNAL*
175 virtual void ReturnPressed(); //*SIGNAL*
176 virtual void TabPressed(); //*SIGNAL*
177 virtual void ShiftTabPressed(); //*SIGNAL*
178 virtual void CursorOutLeft(); //*SIGNAL*
179 virtual void CursorOutRight(); //*SIGNAL*
180 virtual void CursorOutUp(); //*SIGNAL*
181 virtual void CursorOutDown(); //*SIGNAL*
182 virtual void DoubleClicked(); //*SIGNAL*
183
184 ClassDefOverride(TGTextEntry,0) // The TGTextEntry widget is a simple line editor for inputting text
185};
186
187#endif
Handle_t Atom_t
WM token.
Definition GuiTypes.h:37
Handle_t Window_t
Window handle.
Definition GuiTypes.h:29
Handle_t GContext_t
Graphics context handle.
Definition GuiTypes.h:38
@ kSunkenFrame
Definition GuiTypes.h:383
@ kDoubleBorder
Definition GuiTypes.h:385
ULong_t Pixel_t
Pixel value.
Definition GuiTypes.h:40
Handle_t FontStruct_t
Pointer to font structure.
Definition GuiTypes.h:39
#define h(i)
Definition RSha256.hxx:106
bool Bool_t
Definition RtypesCore.h:63
int Int_t
Definition RtypesCore.h:45
long Long_t
Definition RtypesCore.h:54
constexpr Bool_t kFALSE
Definition RtypesCore.h:101
constexpr Bool_t kTRUE
Definition RtypesCore.h:100
const char Option_t
Definition RtypesCore.h:66
#define ClassDefOverride(name, id)
Definition Rtypes.h:341
ETextJustification
Definition TGWidget.h:22
@ kTextLeft
Definition TGWidget.h:23
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t option
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t del
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize wid
Option_t Option_t TPoint TPoint const char mode
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t property
Option_t Option_t TPoint TPoint const char text
The color creation and management class.
Definition TColor.h:21
Encapsulate fonts used in the GUI system.
Definition TGFont.h:140
A subclasses of TGWindow, and is used as base class for some simple widgets (buttons,...
Definition TGFrame.h:80
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
Pixel_t GetForeground() const
Definition TGGC.h:73
A text buffer is used in several widgets, like TGTextEntry, TGFileDialog, etc.
const char * GetString() const
A TGTextEntry is a one line text input widget.
Definition TGTextEntry.h:24
virtual void SetState(Bool_t state)
Set state of widget. If kTRUE=enabled, kFALSE=disabled.
Int_t fOffset
start position of text (in pixels)
Definition TGTextEntry.h:37
virtual void SetFocus()
Set focus to this text entry.
void CursorLeft(Bool_t mark=kFALSE, Int_t steps=1)
Moves the cursor leftwards one or more characters.
Pixel_t GetForeground() const override
Return frame foreground color.
void SetEdited(Bool_t flag=kTRUE)
Bool_t fFrameDrawn
kTRUE draw itself inside a two-pixel frame, kFALSE draw without any frame
Definition TGTextEntry.h:50
void CursorRight(Bool_t mark=kFALSE, Int_t steps=1)
Moves the cursor rightwards one or more characters.
Bool_t HasMarkedText() const
Int_t fStartIX
selection begin in characters
Definition TGTextEntry.h:34
virtual void SetEchoMode(EEchoMode mode=kNormal)
The echo modes available are:
virtual void SetDefaultSize(UInt_t w, UInt_t h)
Set the default / minimal size of the widget.
UInt_t fDefHeight
default height
Definition TGTextEntry.h:56
Bool_t HandleConfigureNotify(Event_t *event) override
Handles resize events for this widget.
virtual void SetMaxLength(Int_t maxlen)
Set the maximum length of the text in the editor.
EEchoMode fEchoMode
OPTION={GetMethod="GetEchoMode";SetMethod="SetEchoMode";Items=(kNormal="Normal",kNoEcho="No Echo",...
Definition TGTextEntry.h:51
static FontStruct_t GetDefaultFontStruct()
Return default font structure in use.
virtual void RemoveText(Int_t start, Int_t end)
Removes text at the range, clears the selection and moves the cursor to the end of the line.
Int_t fStartX
selection begin in pixels
Definition TGTextEntry.h:32
Bool_t HandleKey(Event_t *event) override
The key press event handler converts a key press to some line editor action.
TGTextBuffer * fText
text buffer
Definition TGTextEntry.h:31
Int_t GetCursorPosition() const
Bool_t HandleSelectionRequest(Event_t *event) override
Handle request to send current clipboard contents to requestor window.
TString GetDisplayText() const
Returns the text that's currently displayed.
UInt_t fDefWidth
default width
Definition TGTextEntry.h:55
void SetForegroundColor(Pixel_t fore) override
TGGC fNormGC
normal drawing context
Definition TGTextEntry.h:42
~TGTextEntry() override
Delete a text entry widget.
Bool_t fHasOwnFont
kTRUE - font defined locally, kFALSE - globally
Definition TGTextEntry.h:54
void Clear(Option_t *option="") override
Clears up the text entry.
void Deselect()
Deselects all text (i.e.
TBlinkTimer * fCurBlink
cursor blink timer
Definition TGTextEntry.h:46
void CopyText() const
Copies the marked text to the clipboard, if there is any and GetEchoMode() is kNormal.
static TString * fgClipboardText
application clipboard text
Definition TGTextEntry.h:68
const char * GetTitle() const override
Returns title of object.
virtual void UpdateOffset()
Updates start text offset according GetAlignment() mode, if cursor is out of frame => scroll the text...
TGTextBuffer * GetBuffer() const
const char * GetText() const
TGTextEntry & operator=(const TGTextEntry &)=delete
Bool_t HandleTimer(TTimer *t) override
Handle cursor blink timer.
virtual void TabPressed()
This signal is emitted when the <TAB> key is pressed.
Bool_t HandleSelectionClear(Event_t *event) override
Handle selection clear event.
void CursorWordBackward(Bool_t mark=kFALSE)
Moves the cursor one word to the left.
virtual void SetCursorPosition(Int_t pos)
Set the cursor position to newPos.
void Backspace()
Deletes the character on the left side of the text cursor and moves the cursor one position to the le...
TString GetMarkedText() const
Returns the text marked by the user (e.g.
Bool_t HandleSelection(Event_t *event) override
Handle text selection event.
void Del()
Deletes the character on the right side of the text cursor.
Bool_t fCursorOn
cursor status (on/off)
Definition TGTextEntry.h:40
static const TGFont * fgDefaultFont
Definition TGTextEntry.h:69
Bool_t HandleDoubleClick(Event_t *event) override
Handle mouse double click event in the text entry widget.
TGToolTip * fTip
associated tooltip
Definition TGTextEntry.h:47
void NewMark(Int_t pos)
New character mark at position pos.
Bool_t IsFrameDrawn() const
virtual void SetTitle(const char *label)
static const TGGC & GetDefaultSelectedBackgroundGC()
Return graphics context for highlighted frame background.
TGTextEntry(const TGTextEntry &)=delete
virtual void AppendText(const char *text)
Appends text to the end of text entry, clears the selection and moves the cursor to the end of the li...
void SetEnabled(Bool_t flag=kTRUE)
virtual void SelectAll()
Selects all text (i.e.
virtual void CursorOutRight()
This signal is emitted when cursor is going out of right side.
void Paste()
Inserts text at the cursor position, deleting any previous marked text.
virtual void SetFrameDrawn(Bool_t flag=kTRUE)
Sets the text entry to draw itself inside a two-pixel frame if enable is kTRUE, and to draw itself wi...
EInsertMode fInsertMode
OPTION={GetMethod="GetInsertMode";SetMethod="SetInsertMode";Items=(kInsert="Insert",...
Definition TGTextEntry.h:52
virtual void SetAlignment(ETextJustification mode=kTextLeft)
Sets the alignment of the text entry.
Int_t fEndIX
selection end in characters
Definition TGTextEntry.h:35
Atom_t fClipboard
clipboard property
Definition TGTextEntry.h:45
virtual TGToolTip * GetToolTip() const
ETextJustification GetAlignment() const
virtual void ScrollByChar()
Shift position of cursor by one character.
Int_t GetCharacterIndex(Int_t xcoord)
Returns the index of the character to whose left edge xcoord is closest.
TGGC fSelGC
selected text drawing context
Definition TGTextEntry.h:43
EInsertMode GetInsertMode() const
virtual void ShiftTabPressed()
This signal is emitted when SHIFT and TAB keys are pressed.
Int_t fEndX
selection end in pixels
Definition TGTextEntry.h:33
virtual void ReturnPressed()
This signal is emitted when the return or enter key is pressed.
void Layout() override
static const TGGC * fgDefaultSelectedGC
Definition TGTextEntry.h:70
FontStruct_t GetFontStruct() const
GContext_t fSelbackGC
selected background drawing context
Definition TGTextEntry.h:44
virtual void SetToolTipText(const char *text, Long_t delayms=500)
Set tool tip text associated with this text entry.
EEchoMode GetEchoMode() const
ETextJustification fAlignment
OPTION={GetMethod="GetAlignment";SetMethod="SetAlignment";Items=(kTextLeft="Left",...
Definition TGTextEntry.h:53
Bool_t fSelectionOn
selection status (on/off)
Definition TGTextEntry.h:36
Bool_t HandleFocusChange(Event_t *event) override
Handle focus change event in text entry widget.
virtual void SetTextColor(Pixel_t color, Bool_t local=kTRUE)
Changes text color.
void DoRedraw() override
Draw the text entry widget.
Pixel_t GetTextColor() const
virtual void SetText(const char *text, Bool_t emit=kTRUE)
Sets text entry to text, clears the selection and moves the cursor to the end of the line.
Bool_t HasOwnFont() const
Bool_t HandleMotion(Event_t *event) override
Handle mouse motion event in the text entry widget.
FontStruct_t fFontStruct
text font
Definition TGTextEntry.h:41
virtual void CursorOutLeft()
This signal is emitted when cursor is going out of left side.
TGDimension GetDefaultSize() const override
Return the default / minimal size of the widget.
void DrawBorder() override
Draw the border of the text entry widget.
Int_t MaxMark() const
void Cut()
Copies the marked text to the clipboard and deletes it, if there is any.
static const TGGC * fgDefaultGC
Definition TGTextEntry.h:72
void End(Bool_t mark=kFALSE)
Moves the text cursor to the right end of the line.
virtual void InsertText(const char *text, Int_t pos)
Inserts text at position pos, clears the selection and moves the cursor to the end of the line.
virtual void CursorOutDown()
This signal is emitted when cursor is going out of bottom side.
virtual void SetFont(TGFont *font, Bool_t local=kTRUE)
Changes text font specified by pointer to TGFont object.
virtual Bool_t IsCursorOutOfFrame()
Returns kTRUE if cursor is out of frame.
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save a text entry widget as a C++ statement(s) on output stream out.
virtual void SetInsertMode(EInsertMode mode=kInsert)
Sets the mode how characters are entered to the text entry.
void CursorWordForward(Bool_t mark=kFALSE)
Moves the cursor one word to the right.
virtual void Insert(const char *)
Removes any currently selected text, inserts newText, sets it as the new contents of the text entry.
virtual void Init()
Do default initialization.
Bool_t HandleButton(Event_t *event) override
Handle mouse button event in text entry widget.
Bool_t fEdited
kFALSE, if the line edit's contents have not been changed since the construction
Definition TGTextEntry.h:49
Int_t MinMark() const
void MarkWord(Int_t pos)
Marks the word nearest to cursor position.
virtual void TextChanged(const char *text=nullptr)
This signal is emitted every time the text has changed.
Bool_t IsEdited() const
void Home(Bool_t mark=kFALSE)
Moves the text cursor to the left end of the line.
virtual void DoubleClicked()
This signal is emitted when widget is double clicked.
virtual void PastePrimary(Window_t wid, Atom_t property, Bool_t del)
Paste text from selection (either primary or cut buffer) into text entry widget.
Int_t fCursorX
cursor position in pixels
Definition TGTextEntry.h:38
static const TGGC & GetDefaultSelectedGC()
Return selection graphics context.
virtual void CursorOutUp()
This signal is emitted when cursor is going out of upper side.
static const TGGC & GetDefaultGC()
Return default graphics context.
Int_t GetMaxLength() const
Int_t fMaxLen
maximum length of text
Definition TGTextEntry.h:48
Int_t fCursorIX
cursor position in characters
Definition TGTextEntry.h:39
Bool_t HandleCrossing(Event_t *event) override
Handle mouse crossing event.
void Remove()
Deletes all characters on the right side of the cursor.
static const TGGC * fgDefaultSelectedBackgroundGC
Definition TGTextEntry.h:71
A tooltip can be a one or multiple lines help text that is displayed in a window when the mouse curso...
Definition TGToolTip.h:24
The widget base class.
Definition TGWidget.h:43
ROOT GUI Window base class.
Definition TGWindow.h:23
Basic string class.
Definition TString.h:139
Handles synchronous and a-synchronous timer events.
Definition TTimer.h:51
Event structure.
Definition GuiTypes.h:174